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
答案 0 :(得分:0)
您应该阅读本指南:Immutable as React state。您不需要致电.toJS()
。
这完全没问题:
const comments = Immutable.fromJS(this.state.comments);
var tempList = comments.concat({
text: comment,
isAdmin: false
});
this.setState({ comments: tempList });