我可以只使用具有特定值的"UseEffect"吗?



你好,我正在尝试使用react钩子的UseEffect,我知道我可以添加变量,这些变量在更改时可以激活它,但我想知道是否有一种方法可以仅在值满足特定条件时激活UseEffect。

我已经在useEffect中创建了一个条件,我知道它有效,但我想知道是否有其他方法可以做到这一点。

useEffect(() => {
doSomething();
if(!isOpen)
doSomething2();
}, [isOpen, otherThing]); 

在上面的例子中,我希望doSomething2只有在其值为false时才起作用。

isOpen在这个例子中有一个默认值false,然后当它从数据库中检索东西时,它变成true,最后当它完成提取时,它又回到false。

我希望钩子只有在值从true切换到false时才会激活,而不是在每次更改中都激活。

有办法做到这一点吗?

别无选择。您的尝试已经正确。这是唯一的办法。干杯

useEffect()只允许依赖关系,不允许条件属性。

您可以有多个数据可以像这样更改。

const [selectedCategory, setSelectedCategory] = React.useState(null);
const [restaurants, setRestaurants] = React.useState({});

如果要获取特定属性(如restaurants(的事件则可以使用一个CCD_ 3方法。对于另一种方法,您可以使用另一种useEffect方法,如下所示。

const [selectedCategory, setSelectedCategory] = React.useState(null);
const [restaurants, setRestaurants] = React.useState(restaurantData);
useEffect(() => {
console.log("this is for selectedCategory")
}, [selectedCategory]);
useEffect(() => {
console.log("this is for restaurants")
}, [restaurants]);

谢谢。

相关内容

  • 没有找到相关文章

最新更新