javascript - antd InputNumber添加redux之后,点击一次up按钮,数字+1+1而不是+1
PHP中文网
PHP中文网 2017-04-11 10:20:34
[JavaScript讨论组]

这里监听onchange事件,每次更新就dispatch 新的value,然后更新store,然后更新view,代码如下:

结果就是每次点击以下,就+1 然后更新视图 然后InputNumber触发了onChange事件,然后又走了一遍,导致+1+1而不是+1

 componentWillMount() {
    const me = this;
    me.unsubscribe = store.subscribe(() => {
      const nextState = store.getState().couponInfo;
      let flag = false;
      for (var key in this.state) {
        if (this.state[key] !== nextState[key]) {
          flag = true;
          break;
        }
      }
      flag && me.setState(nextState);
    });
  }

               {
                  console.log(val)
                  store.dispatch(fieldChange(parseInt(val), 'quantity', (value) => {
                    return value && typeof value === 'number' && value > 0 && value <= 100000;
                  }));
                }}
              />
            

3.

PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
伊谢尔伦

我可以帮你排除一下‘又走了一遍’那个说法的可能,因为:
InputNumber组件中的onChange执行过后,value={this.state.quantity}这里值确实会跟着改变,但是记住,仅仅value发生改变,是不会造成onChange再执行一遍的,具体问题因为出在你代码的其他地方,不过你提供的代码太零散(不全),只能帮你到这了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号