var deleted = xhr.responseText;
if (deleted == 'true') {
this.state.comments.remove(2); //这行报错,没有remove 这个方法。
this.setState(this.state.comments);
}
deleted是server返回的状体,如果为true则删除state.comments对应的数据。comments是一个数组,这样写不对,应该怎么写呢?
数组是一个引用,React 执行 diff 算法时比较的是两个引用,而不是引用的对象。所以直接修改原对象,引用值不发生改变的话,React 不会重新渲染。因此,修改状态的数组或对象时,最好返回一个新的数组或对象。另外,使用不可变对象,如 immutable.js,可以在这方面作更多优化。