最好让一般反应组件从商店订阅或手动传递数据吗?

时间:2017-05-03 19:34:30

标签: react-redux

我刚刚开始使用React和Redux,我偶然发现了一个棘手的问题。

假设我有一个通用的React组件(让我们称之为 FriendSelector ),可以在网站上的许多地方使用。 FriendSelector 需要有一系列好友对象才能运作。

我是否使用ReactRedux库中的connect()使 FriendSelector 成为容器组件,并使用mapStateToProps从商店中获取所需内容

我是否可以从使用 FriendSelector 作为道具的任何组件手动发送数据列表,如下所示:

let friends = this.context.store.getState().friends

<MyComponent>
    <FriendSelector friends={friends} />
</MyComponent>

或者这是不好的做法?

我个人认为选项#1不是很好,因为我必须确保我的商店有一个包含数组的朋友属性,否则该组件将无法正常工作。

但是当我考虑选项#2时,看起来它不遵循单向数据流,因为只允许组件从父级获取其支持?

1 个答案:

答案 0 :(得分:0)

将组件连接到商店还是从父组件获取所需的属性完全取决于您。这取决于您的应用程序架构。

阅读关于演示与容器组件的this popular post

通过直接用getState()查询状态来考虑喂食组件通常被认为是不好的做法。这就是redux暴露connect方法的原因。