你好,我正在尝试使用react挂钩的UseEffect,我知道我可以添加在更改时可以激活它的变量,但是我想知道是否只有在值满足特定条件时才激活useEffect的方法
我已经在useEffect内部创建了一个条件,并且我知道它可以工作,但是我想知道是否还有另一种方法。
useEffect(() => {
doSomething();
if(!isOpen)
doSomething2();
}, [isOpen, otherThing]);
在上面的示例中,我希望doSomething2仅在其值为false时才起作用。
此示例中的isOpen的默认值为false,然后从数据库中检索到某些内容时将其转换为true,最后在完成获取后将其返回为false。
我希望钩子仅在值从true切换为false时才激活,而不是在每次更改时都激活。
有办法吗?
答案 0 :(得分:0)
别无他法。您的尝试已经正确。那是唯一的方法。干杯!
useEffect()
仅允许依赖项,而没有条件属性。
答案 1 :(得分:0)
您可以拥有多个可以像这样更改的数据。
const [selectedCategory, setSelectedCategory] = React.useState(null);
const [restaurants, setRestaurants] = React.useState({});
如果您想获取特定属性的事件,例如 restaurants
那么您可以使用一种 useEffect
方法。对于另一个,您可以使用另一种 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]);
谢谢。