将 props 传递给 React-Redux 容器组件

2024-04-05

我有一个在 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 状态对象上,也不希望将 prop 传递给演示组件。

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

Thanks.


mapStateToProps and mapDispatchToProps两者都采取ownProps作为第二个参数。

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

For 参考 https://github.com/reduxjs/react-redux/blob/master/docs/api/connect.md#mapstatetoprops-state-ownprops--object

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 props 传递给 React-Redux 容器组件 的相关文章

随机推荐

  • 如何在 Treeview 控件中使子节点可见 = false

    我有一个带有树视图控件的窗口窗体 该树视图有一个根节点和 2 个子节点 我的要求是我需要隐藏第一个子节点 是否有可能使特定孩子点头可见为假 是的 您可以从树节点继承并创建您自己的行为 就像这样 public class RootNode T
  • 使用 Angular 6 和 Spring Rest API 下载文件

    我在使用 Angular 6 从 Rest api 下载文件时遇到问题 后端方法 RequestMapping value print id public ResponseEntity
  • 使用python发送消息时出现错误400

    我正在尝试使用 Gmail API 发送电子邮件 我已成功通过身份验证 并且我的计算机上有一个 client secret json 文件 我已经能够使用 Gmail API 网站上的快速入门示例获取标签列表 我已成功将范围重置为 SCOP
  • 如何从蓝牙 LE 设备获取数据

    我有一台支持蓝牙 LE 的蓝牙条形码扫描仪 我试图在扫描时从中获取条形码信息 我可以正常连接onServicesDiscovered被叫到我的BluetoothGattCallback但我不知道从那里该做什么 通过经典的蓝牙连接 您将获得I
  • 使用 Redux 获取数据时如何避免竞争条件?

    我们有一个异步获取对象的操作 我们称之为getPostDetails 它需要一个参数来获取哪个帖子 一个 ID 用户会看到一个帖子列表 可以单击其中一个来获取一些详细信息 如果用户点击 Post 1 我们会发送一个GET POST动作可能看
  • 尝试连接到cleardb时出错

    再次嗨 我想连接到heroku中的cleardb实例 我从heroku配置变量中获取主机名和凭据CLEAR DATABASE URL但我收到以下错误 错误 2003 HY000 无法连接到 us cdbr east 06 cleardb n
  • 为什么我应该开始使用 Google Material Design Lite 而不是 Twitter Bootstrap 或 Foundation

    免责声明 我不想开始任何对抗谷歌粉丝 我只是问 因为我没有找到我的问题的直接答案 也许已经开始使用它的人 或任何谷歌开发人员 可以提供建议 谷歌最近宣布材料设计精简版 1 0 https developers google com web
  • (R, dplyr) 选择以相同字符串开头的多列并按组汇总平均值 (90% CI)

    我是 tidyverse 的新手 从概念上讲 我想计算以 ab 开头 按 case 分组的所有列的平均值和 90 CI 尝试了很多方法 但似乎都不起作用 我的实际数据有很多列 所以明确列出它们不是一个选择 测试数据如下 library ti
  • Keycloak 支持基本身份验证吗?

    Keycloak 是否支持基本身份验证 授权标头包含单词 Basic 单词 后跟一个空格和一个 base64 编码的字符串 username password 如果支持 我如何为其配置领域和客户端设置 我想使用 Keycloak 保护我的其
  • Android异常处理最佳实践?

    如果我的应用程序崩溃 它会挂起几秒钟 然后 Android 告诉我该应用程序崩溃并需要关闭 所以我正在考虑用一般的方法捕获我的应用程序中的所有异常 try catch Exception e 并制作一个新的Activity这解释了应用程序立
  • 如何确定日期是否是周末(不使用 lubridate)

    我有一个日期对象向量 yyyy mm dd 我想确定其中是否有周末 有没有一个函数可以直接确定这一点 我可以用wday in the 润滑封装然后判断返回值是否为01 or 07 但是还有其他更直接的吗 x lt seq Sys Date
  • 未捕获的类型错误:fs.readFileSync 不是函数

    我正在尝试获取 webpack 和地图盒 GL https github com mapbox mapbox gl js blob master webpack config example js在 Meteor 系统中协同工作 我到处都查
  • Folium 地图未在 Django 网页中显示

    对于 Django 以及一般的 Web 开发 来说非常陌生 所以提前道歉 我试图在 Django 网页中显示我的 Folium 地图 但我似乎不明白为什么我最终会得到一个空白屏幕 我在 SO 中查找了其他帖子 但他们都要求要么专门弹出窗口
  • 如何从 git 历史记录中删除除最后 n 次提交之外的所有提交以节省空间

    我使用 git 来备份和恢复系统上可能发生更改的文件夹 并且随着无用的历史记录的积累 它们可能会变得非常大 我只需要最后 4 次左右的提交 如何压缩或删除除最后 n 次提交之外的整个历史记录 免责声明 不幸的是 您的第一句话可能玷污了这个问
  • 无法从“sudo bundle install”恢复

    错误地我跑了sudo bundle install在我的项目上 现在当我自己运行它时bundle install我收到权限被拒绝的错误 如下 我尝试了这里的说明https github com bundler bundler blob ma
  • Selenium 和 Python3 ChromeDriver 引发消息:无法连接到服务 chromedriver

    请问在这种情况下如何让硒发挥作用 我已经多次看到这个问题 但答案很少或没有 我希望今天运气站在我这边 让我首先详细介绍我的环境 我在跑步macOS 塞拉利昂 我在用virtualenv virtualenvwrapper with pyth
  • 多彩多姿的编辑文本提示

    有没有办法在 android support design widget TextInputLayout 包装时为 edittext 的提示设置多种颜色 而不影响浮动 edittexts 的行为 喜欢 标题 标题和 带有不同颜色的提示 尝试
  • 无法创建类型“Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter,Common.Logging.Log4Net”

    我在解决方案中有包含其他类库的 WCF 项目 我使用 nuget 包管理器为需要日志记录的项目添加了 Common Logging 我收到此错误 无法创建类型 Common Logging Log4Net Log4NetLoggerFact
  • CakePHP:用 save() 进行加/减?

    我试图通过 Cake 的 save 函数简单地执行以下操作 UPDATE user SET value value 1 不过 好像只能设定 它不会理解我传递给它来增加或减少的任何内容 并且互联网上似乎没有人遇到这个问题 P 即使在浏览某人在
  • 将 props 传递给 React-Redux 容器组件

    我有一个在 React Native Navigator 组件中创建的 React Redux 容器组件 我希望能够将导航器作为道具传递给该容器组件 以便在其演示组件内按下按钮后 它可以将对象推送到导航器堆栈上 我想做到这一点 而不需要手动