我有一个react-redux容器组件,它是在react-Native Navigator组件中创建的.我希望能够将导航器作为一个props 传递给这个容器组件,这样在其呈现组件中按下一个按钮后,它就可以将一个对象推到导航器堆栈上.

我想这样做,而不需要手工编写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

我希望能够从navigator renderScene函数中调用如下组件:

<SearchViewContainer navigator={navigator}/>

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

我不喜欢将导航器存储在redux state对象上,也不想将props 传递给presentational组件.

有没有办法把props 传给这个容器组件?或者,有没有我忽略的替代方法?

谢谢

推荐答案

mapStateToPropsmapDispatchToProps都将ownProps作为第二个参数

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

reference美元

Reactjs相关问答推荐

使用React Router多姆表单组件附加/?地址栏中基本URL的索引

实时收听react前端应用程序中的webhook响应

如何在Pivot模式下自定义标题?

如何使用React Router创建响应式主详细信息应用程序?

在Reaction+Redux+RTKQuery中对API调用进行排序

如何在与AntD的react 中限制文件上传和显示消息?

如何使用TouchStart/TouchEnd在Table ReactJS中交换位置?

使用 MUI 菜单时添加新 html 元素时布局意外滚动跳转

PWA:注册事件侦听器不会被触发

在 golang 服务器中刷新或直接 url 路径时响应 404

在MongoDB中,如何获取最后N条记录中字段不为空或不为空字符串的数据

Primereact 的日历组件在每个月 12 日之后使用非唯一键生成

在 React 中使用复选框管理状态

使用 axios 响应路由 Dom 操作

如何检索包含动态段的未解析路径?

React Router 6.4CreateBrowserRouter子元素不显示

react-admin useGetIdentity 只返回全名,id 未定义 头像未定义

将 dict 值转换并插入到react 钩子的列表中

使用 React、Redux 和 Firebase 的无限循环

将 set statehook 函数传递给子路由组件.解构错误