何时将不可变数据转换为反应组件中的本机JS?

时间:2016-03-08 16:21:40

标签: reactjs redux immutable.js

所以,我有一个接收道具的组件,它是不可变对象(通过mapStateToProps)。然后我将它们作为道具发送给使用它们的儿童组件,并发送给他们的孩子。

像这样,Comp1是连接组件。

Comp1 - > Comp2 - > COMP3 ...

我的问题是,在某些时候我需要使用toJS()来实际使用数据。我在哪里这样做?我应该在JS()渲染函数中的所有数据吗?我应该在Comp1中执行它并将本机JS对象作为道具发送吗?

此外,我使用了本教程

http://teropa.info/blog/2015/09/10/full-stack-redux-tutorial.html#introducing-a-client-side-redux-store

2 个答案:

答案 0 :(得分:1)

正如丹·阿布拉莫夫(Dan Abramov)在一个github问题的某个地方向某个想知道相同问题的人说过,你可以选择toJS()你的不可变对象的地点和时间。 Redux对此没有任何假设。

也许你会对此有更好的建议。

您阅读的教程确实是Redux / Immutable / Universal应用程序的绝佳演练。如果我没记错,作者永远不会处理普通对象,而是使用ImmutableJS API更新应用程序状态。

答案 1 :(得分:0)

我个人而言,我在选择器或容器中使用toJS(),并在化简器中转换回不变。

是您个人的选择。 请记住,声明它必须始终是不可变的,并且更新不可变的东西比更新不可变的东西要慢很多时间。