Javascript 使用React-useState钩子函数调用中止状态集
使用旧的基于类的Javascript 使用React-useState钩子函数调用中止状态集,javascript,reactjs,Javascript,Reactjs,使用旧的基于类的this.setState()方法,我们可以从传递到setState的函数返回null,告诉React不要对特定的setState调用执行任何操作: this.setState(({ value }) => { if (value === 0) { return null; } else { return { value: value - 1 }; } }); 我想知道用React钩子做这件事的正确方法是什么,下面的正确吗 const [x,
this.setState()
方法,我们可以从传递到setState
的函数返回null
,告诉React不要对特定的setState
调用执行任何操作:
this.setState(({ value }) => {
if (value === 0) {
return null;
} else {
return { value: value - 1 };
}
});
我想知道用React钩子做这件事的正确方法是什么,下面的正确吗
const [x, setValue] = useState(0);
setValue(value => {
if (value === 0) {
return value;
} else {
return value - 1;
}
});
如果传递原始值,我将尝试不触发重新渲染。看起来像是
useffect
hook的作业:
useEffect(() => {
setValue(value => {
if (value === 0) {
return value;
} else {
return value - 1;
}
});
}, [x])
仅当
x
更改时,效果才会运行。看起来像是useffect
hook的作业:
useEffect(() => {
setValue(value => {
if (value === 0) {
return value;
} else {
return value - 1;
}
});
}, [x])
只有当
x
发生变化时,效果才会运行。@NikitaMadeev-see-Oh不知道这种可能性。那么您的解决方案看起来是可行的,因为@NikitaMadeev-see-Oh不知道这种可能性。那么你的解决方案看起来是可行的,因为我正在处理对象,所以很不幸,它不是那么直接。怎么会这样x
是您的示例中的一个数字。这是一个简化的示例,我正在寻找一个通用解决方案,虽然我正在处理对象,但不幸的是,它不是那么直接。如何x
是您示例中的一个数字。这是一个简化的示例,但我正在寻找通用解决方案