Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在React useEffect中使用函数_Javascript_Html_Reactjs_React Hooks_Use Effect - Fatal编程技术网

Javascript 如何在React useEffect中使用函数

Javascript 如何在React useEffect中使用函数,javascript,html,reactjs,react-hooks,use-effect,Javascript,Html,Reactjs,React Hooks,Use Effect,我希望下面的代码位于React-useffect中,因为每次事情发生变化时,我都希望组件重新加载。但是react不允许函数中使用useffect 单击时将切换以下代码。一切正常,但组件不会重新加载,因此您需要在其他组件之间切换,以便对其进行更新 const toggleFavorite = () => { if (docdata !== "") { db.collection("infodata") .doc(docdata)

我希望下面的代码位于
React-useffect
中,因为每次事情发生变化时,我都希望组件重新加载。但是react不允许函数中使用
useffect

单击时将切换以下代码。一切正常,但组件不会重新加载,因此您需要在其他组件之间切换,以便对其进行更新

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

    setFavoritePassword(!favoritePassword);
  }
};


我试过这些:

但这些似乎不起作用

任何帮助都将不胜感激


谢谢。

您可以这样做:

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>
const[toggle,setToggle]=useState(false);
const toggleFavorite=()=>{
如果(docdata!==“”){
数据库收集(“信息数据”)
.doc(docdata)
.设置({
收藏夹:!收藏夹密码
}, {
合并:对
});
setFavoritePassword(!favoritePassword);
}
};
useffect(()=>{
toggleFavorite()
},[切换])
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>