小编典典

将道具传递给react-redux容器组件

reactjs

我有一个在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函数内部访问此传递的prop 。

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

有什么方法可以将prop传递给此容器组件吗?另外,我还有其他替代方法吗?

谢谢。


阅读 290

收藏
2020-07-22

共1个答案

小编典典

mapStateToPropsmapDispatchToProps两者取ownProps作为第二个参数。

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

参考

2020-07-22