Reactjs 如何使用useEffect控制重新运行
我对useffect函数有点怀疑。我正试图阻止这种不必要的情况发生。问题是我是否可以根据条件控制使用效果,是否可能?。示例代码 这是正常代码Reactjs 如何使用useEffect控制重新运行,reactjs,react-hooks,Reactjs,React Hooks,我对useffect函数有点怀疑。我正试图阻止这种不必要的情况发生。问题是我是否可以根据条件控制使用效果,是否可能?。示例代码 这是正常代码 useEffect(() => { // do something },[variableName]); 我的期望代码和问题是 useEffect(() => { // do something },[variableName == 5]); // if it's true, Does the useEffect control
useEffect(() => {
// do something
},[variableName]);
我的期望代码和问题是
useEffect(() => {
// do something
},[variableName == 5]); // if it's true, Does the useEffect control the re-run?
这就像一个if条件,是否有可能停止重新运行。我知道这很奇怪,但只是为了我清楚的理解
谢谢。如果满足某个条件,您可以在功能组件中设置boolian状态,并将其设置为true,然后将该状态变量用作useEffect挂钩的第二个参数。否。您不能。每次提供的变量更改时,都将运行useEffect 您有两个选择: 1) 在useffect内停止函数执行
useEffect(() => {
if (variableName!=5) return // do nothing if condition is not met
// do something
},[variableName]);
2) 仅当您希望运行useEffect时,才声明一些useState并使用函数更改它
useEffect(() => {
// do something
},[runEffect]);
const [runEffect, setRunEffect] = useState(true)
function runEffect(){
setRunEffect(!runEffect)
}
你想要实现什么?无论如何,渲染完成后将运行
useffect
。此外,也无法停止渲染。因此,请更好地描述您认为应该对您有什么帮助您不能停止
渲染,您希望通过此实现什么?我是否可以使用第二个参数中的条件来控制重新运行。您能否给出一个示例代码片段以供清楚理解?。