Javascript ReactJs:如何更新state的属性
我正在尝试更新状态中存储的一行数据的isSelected属性,该属性不更新。有人能告诉我最好的方法吗Javascript ReactJs:如何更新state的属性,javascript,reactjs,Javascript,Reactjs,我正在尝试更新状态中存储的一行数据的isSelected属性,该属性不更新。有人能告诉我最好的方法吗 var selectedIdsPush = []; var selectedIdsPush = this.state.contacts.slice(); for(var i=0;i<selectedIdsPush.length;i++) { var idAsNumber = parseInt(id);
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;
}
}
var selectedspush=[];
var selectedspush=this.state.contacts.slice();
for(var i=0;iReacts希望消费者setState
,而不是直接分配属性。在本例中,我们可以使用以下方法构建和分配新的联系人
列表:
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 });
Reacts希望消费者设置状态
,而不是直接分配属性。在本例中,我们可以使用以下方法构建并分配新的联系人
列表:
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()
来强制重新渲染
或者更可能应该使用this.setState()
我目前很难确定何时/何地使用状态,因为它显然是不建议的。有关详细信息,请搜索react avoid state
。属性可能会更新,但不会反映在UI中,因为您的应用程序不会被重新呈现
您可以调用this.forceUpdate()
来强制重新渲染
或者更可能应该使用this.setState()
我目前很难确定何时/何地使用状态,因为它显然是不建议的。有关详细信息,请搜索react avoid state