所以,我有一个接收道具的组件,它是不可变对象(通过mapStateToProps)。然后我将它们作为道具发送给使用它们的儿童组件,并发送给他们的孩子。
像这样,Comp1是连接组件。
Comp1 - > Comp2 - > COMP3 ...
我的问题是,在某些时候我需要使用toJS()来实际使用数据。我在哪里这样做?我应该在JS()渲染函数中的所有数据吗?我应该在Comp1中执行它并将本机JS对象作为道具发送吗?
此外,我使用了本教程
答案 0 :(得分:1)
正如丹·阿布拉莫夫(Dan Abramov)在一个github问题的某个地方向某个想知道相同问题的人说过,你可以选择toJS()
你的不可变对象的地点和时间。 Redux对此没有任何假设。
也许你会对此有更好的建议。
您阅读的教程确实是Redux / Immutable / Universal应用程序的绝佳演练。如果我没记错,作者永远不会处理普通对象,而是使用ImmutableJS API更新应用程序状态。
答案 1 :(得分:0)
我个人而言,我在选择器或容器中使用toJS(),并在化简器中转换回不变。
是您个人的选择。 请记住,声明它必须始终是不可变的,并且更新不可变的东西比更新不可变的东西要慢很多时间。