在将多个setState设置为一个接一个时,防止多次渲染



我在一行中调用了多个setState,导致我的react项目中出现多个渲染。

const [isLoading, setIsLoading] = useState(false);
const [entities, setEntities] = useState([]);
// ...
// somewhere in the code
setEntities(result); // cause render
setIsLoading(false); // cause render

如何防止多重渲染?(而不是将这些状态合并到一个对象(

这取决于从哪里调用setStates。通常,它们被分批在一起并触发一个重新应答器。然而,如果它们是从一些异步代码中调用的,react就无法将它们批处理在一起。你可以在这里阅读更多关于这种行为的

如果你想解决这种行为,例如,你可以使用useReducer,因为你只需要一次更新就可以更改不同地方的数据,所以不会出现这个问题。

相关内容

  • 没有找到相关文章

最新更新