简体   繁体   English

如何在 React useEffect 中使用 function

[英]How to use a function in React useEffect

I want below code to be in React useEffect because every time things get changed I want the component to get rerender.我希望下面的代码在React useEffect中,因为每次事情发生变化时,我都希望组件重新渲染。 But react does not allow useEffect in a function.但是 react 不允许在useEffect中使用 useEffect。

The below code is being toggled on click.下面的代码在点击时被切换。 Everything is working fine but the component does not reload so you need to switch between other components so that it gets updated.一切正常,但组件没有重新加载,因此您需要在其他组件之间切换,以便更新。

const toggleFavorite = () => {
  if (docdata !== "") {
    db.collection("infodata")
      .doc(docdata)
      .set({
        favorite: !favoritePassword
      }, {
        merge: true
      });

    setFavoritePassword(!favoritePassword);
  }
};
<div onClick={toggleFavorite}>
  <FontAwesomeIcon icon={faStar} />
</div>

I have tried these: React useEffect in function React Async Function wrapped in a UseEffect我已经尝试过这些: React useEffect in function React Async Function 包裹在 UseEffect

But these do not seem to work.但这些似乎不起作用。

Any help will be appreciated,任何帮助将不胜感激,

Thank you.谢谢你。

you could do something like this:你可以这样做:

const [toggle, setToggle] = useState(false);

const toggleFavorite = () => {
    if (docdata !== "") {
        db.collection("infodata")
            .doc(docdata)
            .set({
                favorite: !favoritePassword
            }, {
                merge: true
            });

        setFavoritePassword(!favoritePassword);
    }
};

useEffect(() => {
    toggleFavorite()
}, [toggle])

<div onClick={setToggle(!toggle)}>
    <FontAwesomeIcon icon={faStar} />
</div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM