React Redux将道具传递给其他组件增强器

时间:2018-11-07 22:27:14

标签: reactjs react-redux react-redux-firebase

我有2个组成部分,ReviewListReviewReviewList具有组件Review的列表,并且每个组件Review都有属性 review

我想在组件上做一些逻辑工作,所以我想创建一个 enhancer Review.enhancer.js )来完成这种工作(我想组件Review为虚拟组件)。

我正在使用 react-redux ,在我的Review.enhancer上,我正在使用connect方法来获取道具({review}),但我什么也没得到。我对React和Redux不感兴趣。

1 个答案:

答案 0 :(得分:2)

首先,如果您已经通过将数据作为道具传递给增强程序来提供数据,则不一定需要connect函数。在这种情况下,您还可以使用recompose库将逻辑应用于数据。但是,在大多数情况下,您仍然需要调度操作,因此仍需要使用connect中的react-redux函数。

将道具传递到由connect函数包装的组件时,它们不会自动向下传递。为了使这些道具可以被包装的组件访问,您需要从mapStateToProps函数中的第二个参数映射它们。

Review.enhancer.js

const mapStateToProps =  (state, ownProps) => {
    return { 
        review: ownProps.review,
    };
};

export default connect(mapStateToProps, null)(Review);

现在仅将审阅道具向下传递到包装的组件。但是,您应该尝试避免这样做,因为它将增强器耦合到容器组件。

  

请注意,如果要将所有道具传递给包装好的      组件,您可以省略箭头中的括号      函数并使用隐式返回。

相关问题