繁体   English   中英

ReactJs:如何更新状态属性

[英]ReactJs: How to update property of state

我正在尝试为状态中存储的一行数据更新isSelected属性,该属性不会更新,谁能告诉我执行此操作的最佳方法吗?

        var selectedIdsPush = [];
        var selectedIdsPush = this.state.contacts.slice();
        for(var i=0;i<selectedIdsPush.length;i++)
        {
            var idAsNumber = parseInt(id);

            if (page.state.contacts[i].id === idAsNumber) {
                page.state.contacts[i].isSelected = true;
                break;
            }

        }

Reacts希望使用者使用setState而不是直接分配属性。 在此示例中,我们可以使用以下命令构建并分配新的contacts列表:

var idAsNumber = parseInt(id);
var newContacts = this.state.contacts.map(function (contact) {
  if (contact.id === idAsNumber) {
    contact.isSelected = true;
  }
  return contact;
});

this.setState({ contacts: newContacts });

该属性可能确实已更新,但由于未重新呈现您的应用程序,因此不会反映在UI中。

您可以调用this.forceUpdate()强制进行重新渲染, https: this.forceUpdate()

或更可能您应该使用this.setState()https: this.setState()

我目前在何时何地使用状态方面感到困惑,因为显然不建议这样做。 搜索react avoid state以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM