将 props 传递给 react-redux 容器组件

新手上路,请多包涵

我有一个在 React Native Navigator 组件中创建的 react-redux 容器组件。我希望能够将导航器作为道具传递给此容器组件,以便在其展示组件内按下按钮后,它可以将对象推送到导航器堆栈上。

我想这样做,而不需要手写 react-redux 容器组件给我的所有样板代码(也不要错过 react-redux 在这里给我的所有优化)。

示例容器组件代码:

 const mapStateToProps = (state) => {
    return {
        prop1: state.prop1,
        prop2: state.prop2
    }
}

const mapDispatchToProps = (dispatch) => {
    return {
        onSearchPressed: (e) => {
            dispatch(submitSearch(navigator)) // This is where I want to use the injected navigator
        }
    }
}

const SearchViewContainer = connect(
    mapStateToProps,
    mapDispatchToProps
)(SearchView)

export default SearchViewContainer

我希望能够从我的导航 renderScene 函数中调用这样的组件:

 <SearchViewContainer navigator={navigator}/>

在上面的容器代码中,我需要能够从 mapDispatchToProps 函数中访问这个传递的道具。

我不想将导航器存储在 redux 状态对象上,也不想将道具传递给演示组件。

有没有办法可以将道具传递给这个容器组件?或者,有没有我忽略的替代方法?

谢谢。

原文由 Mike 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 429
2 个回答

mapStateToPropsmapDispatchToProps 都将 ownProps 作为第二个参数。

 [mapStateToProps(state, [ownProps]): stateProps] (Function):
[mapDispatchToProps(dispatch, [ownProps]): dispatchProps] (Object or Function):

参考

原文由 Abhinav Singi 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以将第二个参数传递给 mapStateToProps(state, ownProps) 这将使您能够访问传递到 mapStateToProps 组件中的道具

原文由 Conor Hastings 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题