你好,我正在尝试使用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]);
谢谢。