2016-05-17 52 views
1

我看到很多有关使用redux标准化商店的信息。但是当你想要显示图表中的数据时,你会做什么?normalizr在redux后的非规范化实体

我的数据是这样的 {课程:[{章节:[{分配:[{...等等}]}]}]}

每个实体都有数据我我的手机上。编写代码太糟糕了。

我想在页面上显示该数据,但我的所有数据都是正常的。此外,ID喜欢为所有三个实体设置一个容器组件。

这看起来很难做到有和无正常化的REDX。必须有一个建议的方式来处理它。

谢谢

回答

1

您可以使容器接受您需要的数据的Id。容器'连接组件与商店。然后,组件为儿童商店连接等造成容器..

要通过IDS从商店获得数据u可以检查: Javascript Redux - how to get an element from store by id

为了减少样板你可以连接部件在同一模块中,因为他们没有与三种查看例如:

https://github.com/reactjs/redux/tree/master/examples/tree-view

显然您的组件将不会那么愚蠢了(除了叶组件)。

检查这个例子太: At what nesting level should components read entities from Stores in Flux?

1

我身边有这样的方法是跑,我从终极版国家希望通过反规范化函数的对象。我在mapStateToProps函数中做了这个,然后我把它传入connect

如果你这样做在容器级别,那么你可以挑选什么完全非标准化的对象,然后部分通过他们props(所以不使用connect,有没有真正的好处再次反规范化)发送到其他组件。

对于denormalizer函数,您可以使用denormalizr库。但是,如果你看看source code,实际功能并不是很大,例如,它可能会被修改以适应你的需要,并直接进入Redux状态。