Why does joining meshes result in a joined mesh with (previously) non-actively selected meshes being transparent? I am currently working on a character model / rig and I want to join some meshes together to a single object (not parented).

However, every time I try joining any mesh, all geometry except that of the mesh which was actively selected (bright orange outline) before joining becomes transparent.

Shown below is the character model with non-joined meshes and the same two meshes joined to a single one. In this example, the eye-mesh was actively selected and the body secondarily (i.e. dark orange outline). The result would be inverted if the body was actively selected (i.e. eyes transparent, body normal).

Anybody have a clue what the cause could be?
The shaders all transfer correctly, nothing is changed in the viewport visibility section, flipping or recalculating normals doesn't help... I really have no idea at this point.





As a possible cause suggested was the "Blend Mode" of the material being set to "Alpha Hashed", this isn't the case either. The Materials are all assigned to the correct meshes and both remain "Opaque". In the images below I selected a face of the previously separated meshes respectively and took a screenshot of the material tab:
I figured it out!

The issue: 
The UV maps didn't get combined on join because they did not have the same name. This resulted in all but the first UV map becoming inactive and all but the actively selected mesh, while having the correct material assigned, using that first UV map. That then resulted in the assigned materials then not being mapped properly.

Solution:
Before joining the meshes, rename all UV maps to the same name. This can be done in "Object Data Properties" (the green triangle above the material tab) > "UV Maps" --> Double-click on names to rename. Then simply join as usual. The UV maps will now be combined correctly and the corrected parts of the resulting mesh will have the correct materials assigned to them properly.