javascript - React setState(null) 并强制更新

标签 javascript reactjs

因此,使用 React 16 setState(null) 不会触发更新

docs :

Calling setState with null no longer triggers an update. This allows you to decide in an updater function if you want to re-render.

但是我需要设置状态null并更新组件。我怎样才能做到这一点? 我尝试了以下方法 - 它们都不起作用。

const [state, setState] = useState(null);
....
....
// neither of the following statements update the component
setState(null) 
setState(() => {return null});

最佳答案

在使用钩子(Hook)时,您可以使用一些虚拟状态来强制更新。请考虑在可能的情况下解决强制执行状态更新的需要。

function useForceUpdate() {
  const [i, setI] = React.useState(0)
  return React.useCallback(() => setI(i => i + 1), [])
}

function F() {
  const forceUpdate = useForceUpdate()
  ....
  forceUpdate()
}

关于javascript - React setState(null) 并强制更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58676257/

相关文章:

javascript - 有没有更简单的方法可以检查 Angular watch 中的预期更改?

javascript - React 16 遍历 map 渲染键

javascript - 无法读取未定义的属性 'engine' - Webpack React

ReactJS Material-UI 如何将组件固定在锚定菜单之上

javascript - 只有一个使用 react-grid-layout 的 highcharts 可以调整大小

javascript - JHipster 7.1.0 ReactJS 构建 jar

javascript - 将 DIV 包裹在 Anchor 标签或其他地方

javascript - 在railscast 114之后实现 'Endless Page' Javascript

javascript - 数组 > 对象 : how to index an array of objects with reduce, 省略结果中嵌套元素的索引(es2017)?

javascript - 将日期时间 javascript 绑定(bind)到表列