Reactjs 使用ImmutableJS和React setState

Reactjs 使用ImmutableJS和React setState,reactjs,immutable.js,setstate,Reactjs,Immutable.js,Setstate,我目前在获取ImmutableJS和正常工作时遇到问题。这不是使用Redux,因此我正在更新组件中的状态 问题是在我更新状态之后,我的getter属性在下一个重新加载程序中丢失,从而导致错误。为什么setState会删除这些方法 我没有正确使用ImmutableJS吗?ImmutableJS是否仅用于Redux const AssociaterLocationStateFactory=RecordFactory({ i编辑:错误 }) 导出默认类IASociateRoleLocation扩展Re

我目前在获取ImmutableJS和正常工作时遇到问题。这不是使用Redux,因此我正在更新组件中的状态

问题是在我更新状态之后,我的
getter
属性在下一个重新加载程序中丢失,从而导致错误。为什么
setState
会删除这些方法

我没有正确使用ImmutableJS吗?ImmutableJS是否仅用于Redux

const AssociaterLocationStateFactory=RecordFactory({
i编辑:错误
})
导出默认类IASociateRoleLocation扩展React.Component{
建造师(道具){
超级(道具)
this.state=新的AssociaterLocationStateFactory({
i编辑:错误
})
//`this.state`有`get`方法来检索属性
console.log(`initial state:`,this.state)//记录{u map:map}
}
切换编辑(){
让nextState=this.state.set('isEditing',!this.state.get('isEditing'))
//'nextState'具有`.get`方法来检索属性
log(`next state:`,nextState)//记录{u map:map}
this.setState(nextState)
}
render(){
console.log(this.state)//{u-map:map}//在第二次渲染时缺少`.get`方法
让isEditing=this.state.get('isEditing')
返回(
{i编辑(
正在编辑!!
) : (
切换
)}
)
}
}

目前,React仅支持普通js对象作为状态。您可以在另一个键/值层中封装任何需要的内容,如

constructor(props) {
  super(props);
  this.state = {
    payload: new AssociateRoleLocationStateFactory({
      isEditing: false
    })
  }
}
围绕这一点的讨论是这样进行的:

但在此之前,保持纯洁