Jak to naprawił? Chcę, żeby nie powiadomić po uruchomieniu w poleceniu. Wygląda niezręcznie

useEffect(() => {
   loadWishlist();
}, []);
    
const loadWishlist = () =>
   getWishlist(user.token).then((res) => {
   // console.log(res);
   setWishlist(res.data.wishlist);
});
1
Newby 16 luty 2021, 21:35

2 odpowiedzi

Najlepsza odpowiedź

Możesz spróbować następujących rzeczy:

//I assume setWishlist is local state
const [wishList, setWishlist] = useState();
//assuming you want to use loadWishlist outside the effect
const loadWishlist = useCallback(
  () =>
    //assuming getWishlist is defined outside of the component
    getWishlist(user.token).then((res) => {
      // console.log(res);
      setWishlist(res.data.wishlist);
    }),
  [user.token]//loasWishlist is re created when user.token changes
);
useEffect(() => {
  loadWishlist();
}, [loadWishlist]);//effect will run every time user.token changes
1
HMR 16 luty 2021, 19:50

Jest wiele sposobów. Jednym z nich jest przeniesienie funkcji wewnątrz Useffect i przejść zależność I.E. [User.Token, Setwishlist, Getwishlist].

Zapoznaj się tutaj, aby uzyskać więcej: Jak naprawić brakującą zależność Ostrzeżenie podczas korzystania z haczyka Reaction UseEffect?

0
Dhaval Laiya 17 luty 2021, 06:46