resium icon indicating copy to clipboard operation
resium copied to clipboard

`useCesium` always returns an undefined `viewer`

Open MatthewHerbst opened this issue 5 months ago • 2 comments

Specs:

  • Resium: 1.18.2
  • React: 17.0.2
  • Node: 20.5.1
  • Server side rendering: no

Expected: viewer is defined once the globe has rendered Actual: viewer is always undefined, even after the globe and other map layers have rendered Related: https://github.com/reearth/resium/issues/596

import { Moon, useCesium, Viewer } from "resium";

import { defaultImageryProvider } from "./defaultImageryProvider";
import { terrainProvider } from "./terrainProvider"'

function MyMap() {
  const { viewer } = useCesium();

  useEffect(() => {
      console.log("viewer", viewer); // Always `undefined`
  }, [viewer]);

  return (
          <Viewer
            animation={false}
            baseLayerPicker={false}
            fullscreenButton={false}
            geocoder={false}
            globe={globe}
            homeButton={false}
            imageryProvider={defaultImageryProvider}
            infoBox={false}
            navigationHelpButton={false}
            requestRenderMode={true}
            scene3DOnly={true}
            sceneModePicker={false}
            selectionIndicator={false}
            targetFrameRate={60}
            terrainProvider={terrainProvider}
            timeline={false}
        >
            <Moon show={false} />
        </ResiumViewer>
  );
}

Is there some extra setup needed somewhere to make this properly work?

MatthewHerbst avatar Sep 04 '24 17:09 MatthewHerbst