Immutable.js的文档没有足够清楚地说明如何使用React.js中的setState正确更改状态。
我有以下功能:
createComment(comment) {
const comments = Immutable.fromJS(this.state.comments);
var tempList = comments.concat({
text: comment,
isAdmin: false
});
this.setState({ comments: tempList.toJS() });
}
它确实可以工作,但是问题是执行此操作后数据不再是不可变的,这违背了使用Immutable.js的目的,但事实是您不能将Immutable对象传递给setState函数。那么我们应该如何精确地做到这一点呢?
我知道数据不再是不可变的,因为出现错误:
comment.get is not a function
最佳答案
您应该阅读本指南:Immutable as React state。您无需致电.toJS()
。
这是完全可以的:
const comments = Immutable.fromJS(this.state.comments);
var tempList = comments.concat({
text: comment,
isAdmin: false
});
this.setState({ comments: tempList });
关于javascript - 在React中使用Immutable.js更改状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43566363/