今天,如果需要,我们可以在 React Hooks/函数组件的渲染阶段getDerivedStateFromProps
使用类组件和状态更新来创建派生状态。
我对 React Hook 变体特别好奇:这在 React 并发模式下是否允许?
如果我使用StrictModeScrollView
包装常见问题解答中的组件,则不会有任何警告。但是,我还是有一点胃疼的感觉,这种模式在并发模式下可能会出现问题。 <React.StrictMode>...</React.StrictMode>
所以问题是:
关于 Hooks FAQ 链接,在 React 并发模式下是否仍然可以派生状态?
例子:
function Comp( {someCond} ) {
const [counter, setCounter] = useState(0);
if (someCond) {
// we are setting derived state directly in render (see FAQ).
setCounter(prev => prev + 1);
// <-- imagine, at this point React aborts this render (and restarts later)
// Does it lead to inconsistencies?
}
// ... return some jsx
}