react中的useState与setState的异步问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react中的useState与setState的异步问题相关的知识,希望对你有一定的参考价值。

参考技术A

函数式的 setState 结合展开运算符 来达到合并更新对象的效果

使用 useEffect 解决

使用 回调函数 解决

useState & useReducer

参考技术A 在 React 函数组件中存储内部 state 通常会使用 useState hook 传入一个初始值,在初次渲染时创建 state,之后会返回当前的 state。

下面是一个点击+1的 demo

这样写组件只能初始化一个变量,如果有多个怎么办?

每次组件渲染,执行 myUseState,如果没有触发 setState 函数,则会将初始值赋值给 state,执行 setState 后组件会再此渲染一次,此时 产生一个新的 state,值为 newState,然后将这个新的 state 返回。所以,setState 并不会改变原有的 state,而是产生一个新的 state。

如果组件内有多个 useState

useReducer 接收一个形如 (state, action) => newState 的 reducer,并返回当前的 state 以及与其对应的 dispatch 方法;

如果 state 逻辑较复杂且包含多个子值,或者下一个 state 依赖于之前的 state 时,useReducer 比 useState 更加适用。

使用 useReducer 步骤:

以上是关于react中的useState与setState的异步问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 usestate 和 setstate 而不是 this.setState 使用 react 和 typescript?

React:如何使用功能性 usestate/useEffect 复制特定的组件类 setstate 回调示例?

在对数组进行排序并传递它之后,React 钩子 useState/setState 不起作用

react usestate 重新设置数据后,不渲染页面

React的 useState解构赋值怎么理解?

如何避免未使用的 setState 函数?可以在没有 setter 的情况下创建 React useState 吗?