Próbuję zainicjować bibliotekę innej firmy W hakach React używam useEffect, ale cały czas otrzymuję null Próbowałem użyć niestandardowych haków, ale otrzymałem ten sam wynik (zero)
Dowolny pomysł?
Ten mój kod https://stackblitz.com/edit/react-rg9uov
Dzięki
1
Alex Malin
7 kwiecień 2020, 17:39
2 odpowiedzi
Najlepsza odpowiedź
Twój useEffect
powinien zadeklarować tablicę zależności dla ref
, również nie wiesz, dlaczego użyto const stage = useRef(null);
? stage
może być tylko stanem komponentu.
const [stage, setStage] = React.useState();
const ref = useRef();
useEffect(() => {
if(ref.current){
setStage(new Konva.Stage({
container: ref.current, // id of container <div>
width: 500,
height: 300
}))
}
},[ref]);
2
Sumedh Chakravorty
7 kwiecień 2020, 15:01
Widzisz null
, ponieważ console.log
działa przed useEffect
, jeśli umieścisz console.log
na końcu useEffect
zobaczysz, że Konva jest zainicjowany poprawnie.
0
rzwnahmd
7 kwiecień 2020, 14:56
Podobne pytania
Nowe pytania
reactjs
React to biblioteka JavaScript do tworzenia interfejsów użytkownika. Wykorzystuje deklaratywny paradygmat oparty na komponentach i ma być zarówno wydajny, jak i elastyczny.