Skip to content

setState的回调函数中再次setState,第二个setState回调函数无法及时获取设置后的值 #161

@fjyhub

Description

@fjyhub

问题描述

setState的回调函数中再次setState,第二个setState回调函数中无法及时获取更改后的值

复现步骤

  1. state 中定义两个变量{page: 1, num: 1}
  2. 点击触发更改num值的方法
    3.在setState回调方法中更改page值为2
  3. 此时回调函数中page值仍然为1,没有被改变
    state = {
      num: 1,
      page: 1
    }
    this.setState({num: 1},()=> {
        this.setState({page: 2}, ()=> {
          // 此时page值没被改变,返回结果为1
          console.log(this.state.page)
        })
    })

期望行为

返回正常更改后的值

系统信息

👽 Taro v2.0.4

Taro CLI 2.0.4 environment info:
System:
OS: macOS High Sierra 10.13.6
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 12.13.0 - /usr/local/bin/node
Yarn: 1.10.1 - /usr/local/bin/yarn
npm: 6.12.0 - /usr/local/bin/npm

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions