可能的竞赛条件调用setState

布莱恩·麦克基

displayModal有一个永远都是落后的价值。可能是比赛条件。updateModal在回调中进行调用,setState因此不会发生竞争状况。

      addAccrual: function() {
        console.log('setting modal to display true');
          this.setState({displayModal: 1}, this.updateModal());
      },

      saveAddAccrual: function() {
        console.log('setting modal to display false');
          this.setState({displayModal: 0}, this.updateModal());
      },

      cancelAddAccrual: function() {
        console.log('setting modal to display false');
          this.setState({displayModal: 0}, this.updateModal());
      },

  updateModal: function() {
    console.log("state of displayModal: " + this.state.displayModal);
    if(this.state.displayModal){
      console.log('showing modal');
      $('#myModalOverlay').show();
      $('#myReactModal').show();
    }else{
      console.log('hiding modal');
      $('#myModalOverlay').hide();
      $('#myReactModal').hide();
    }
  },

例如

设置模式以显示
displayModal的真实状态:0
隐藏Modal

HTML / JSX

<button className="ay-btn" id="addAccrualButton" onClick={this.addAccrual}>Add Accrual</button>

<button className="btn" type="button" onClick={this.cancelAddAccrual}><i className="icon-remove"></i>Cancel</button>

<button className="btn-primary btn" type="button" onClick={this.saveAddAccrual}><i className="icon-white icon-ok"></i>Save</button>
迷迭香

您的问题可能是这样的:

this.setState({displayModal: 1}, this.updateModal());

我假设您要updateModal在成功设置状态后致电上述行没有做到这一点,因为你正在传递的结果updateModal作为回调。

更改为:

this.setState({displayModal: 1}, this.updateModal); // no ()

并且您应该看到预期的行为。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Vector中的竞赛条件

来自分类Dev

jQuery AJAX竞赛条件

来自分类Dev

无极连锁竞赛条件

来自分类Dev

线程竞赛条件

来自分类Dev

Mouseleave竞赛条件

来自分类Dev

通过添加竞赛条件来停止竞赛条件?

来自分类Dev

Ruby on Rails中的竞赛条件

来自分类Dev

任务:: ConfigureAwait-竞赛条件?

来自分类Dev

REST服务和竞赛条件

来自分类Dev

解决Magento ORM竞赛条件

来自分类Dev

C#竞赛条件处理

来自分类Dev

ClojureScript,Figwheel,Devcards,竞赛条件

来自分类Dev

异步过程调用中的GetLastError竞赛

来自分类Dev

SetEvent ResetEvent WaitForMultipleObjectsEx-竞赛条件?

来自分类Dev

更新竞赛条件Postgres的位置(已读)

来自分类Dev

scipy.weave.inline的竞赛条件

来自分类Dev

如何编写测试竞赛条件的测试?

来自分类Dev

Vue生命周期挂钩竞赛条件

来自分类Dev

写入相同值的竞赛条件是否安全?

来自分类Dev

phread_cond_broadcast竞赛条件

来自分类Dev

使用GCD for UICollectionView的iOS中的竞赛条件

来自分类Dev

GAE竞赛条件.get()和.put()

来自分类Dev

SetEvent ResetEvent WaitForMultipleObjectsEx-竞赛条件?

来自分类Dev

使用可能为空的参数对函数进行条件参数调用

来自分类常见问题

涉及子选择和外键的Postgres竞赛条件

来自分类Dev

避免在Android应用中的Android Volley中出现竞赛条件

来自分类Dev

我是否意外创建了VBA竞赛条件?

来自分类Dev

如何解决Fortify竞赛条件:Singleton Member Field问题

来自分类Dev

如何在SQL Server中锁定竞赛条件?