账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react-redux中dispatch是异步?
    31
    0

    当我dispatch的时候,马上打印需要改变的值,发现并没有立刻改变;
    代码如下,我查了一些文章但是依旧没有得到想要的答案,希望有大神能给我简单讲解下这是为什么?redux修改不应该是同步执行的吗?

    // component.js
    import { connect } from 'react-redux';
    import action from '../actions/test.js';
    
    class Test extends Component {
          addnum = () => {
              this.props.setaddnum(1);
              console.log(this.props.state.fileMange.addnum); // 0
              // 我很疑惑我点击之后不应该打印出来的是1吗?实际上这个addnum是改变了,但是没有立刻改变
          };
        render () {
            return (
              <Button onClick={this.addnum} type='primary'>click</Button>
                <div>{this.props.state.fileMange.addnum}</div>
            )
        }
    }
    
    export default connect(state => ({ state }), action)(Test);
    
    // test.js
    export default {
        setaddnum (num) {
            return {
                type: 'SET_ADD_NUM',
                addnum: num
            };
        }
    }
    
    // reducers
    // 初始化state数据
    const initialState = {
        addnum: 0
    };
    export default (state = initialState, action) => {
        switch (action.type) {
          case 'SET_ADD_NUM':
            return Object.assign({}, state, { addnum: action.addnum });
        default:
            return state;
        }
    };
    
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 共 0 条
    • 染指徒留 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部