Я использую контекстную функцию и вызываю функцию в другом js-файле. Но setThreeImdf - это функция useState.
Функция контекста;
const [threeImdf, setThreeImdf] = useState({});
const createMap = (ref, width, height) => {
const display_point = map.venue.features[0].properties.display_point.coordinates;
const threeImdf = new ThreeImdf(
ref,
width,
height,
map,
display_point
);
window.addEventListener("resize", () => {
threeImdf.resize(window.innerWidth, window.innerHeight);
});
threeImdf.showLayer([0]);
setThreeImdf(threeImdf);
});
};
Home.js Функция useEffect
const { map, createMap, threeImdf } = useContext(MapContext);
useEffect( async () => {
if (!_.isEmpty(map)) {
createMap(mapRef, window.innerWidth, window.innerHeight);
const data = threeImdf.getGrouppedObjectsByLayer(currentFloor);
const layers = threeImdf.getOrdinalsNumber();
setFloorCount(layers);
setCategories(data);
}
}, []);
Но я запускаю функцию контекста в useEffect, верните мне threeImdfне найдено. Я хотел бы дождаться окончания хука setThreeImdf. Как я могу это сделать?