繁体   English   中英

如何根据之前的 state 在反应功能组件中有条件地更新 state?

[英]How to conditionally update state based on previous state in react functional component?

所以,我想做以下事情,

const [value, setValue] = useState({})
const updateName = (name)
setValue(previousState => {
  if (/*check some conditions*/) {
    // dont update the state
  } else {
    return { /* some new state */ }
  }
});

无论如何我怎样才能实现它?

你快到了。

const [value, setValue] = useState({})

setValue((prevState) => {
  if (condition to not update) {
    return prevState;
  } else {
    return newState;
  }
});

您不一定需要从setValue调用中执行此操作。 你也可以这样做:

const updateSomething = () => {
  if (shouldUpdate)
    setValue(newState);
}

您可以尝试一些简单的事情,例如:

setValue(!value)

这只会改变 boolean state,从假值传递到真值,反之亦然。

我希望它能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM