当前位置: 首页 > 面试题库 >

react-redux中的ownProps是什么?

左丘善
2023-03-14
问题内容

我正在阅读react-redux上的API并查看Redux的github示例之一:Redux
todo应用

其中一个容器FilterLink具有mapDispatchToProps(和mapStateToProps)接受两个参数,其中一个是ownprops。

const mapDispatchToProps = (dispatch, ownProps) => ({
  onClick: () => {
    dispatch(setVisibilityFilter(ownProps.filter))
  }
})

API文档说:

“如果您的mapStateToProps函数声明为带有两个参数,则它将以存储状态作为第一个参数,并将传递给连接组件的props作为第二个参数来调用,并且只要连接的组件收到新的参数,就会重新调用通过浅等式比较确定的道具。(根据惯例,第二个参数通常称为ownProps。)”

我仍然无法完全掌握它的作用。有人ownProps可以用另一个例子解释什么吗?


问题答案:

ownProps是使用组件时传递的属性。简而言之,这些将被称为道具。

例如在Footer.js中,FilterLink用作:

<FilterLink filter="SHOW_ALL">
  All
</FilterLink>

因此,将使用ownProps具有以下值的mapStateToProps方法:

{
  "filter": "SHOW_ALL",
  "children": ...
}

mapStateToProps方法用于Redux包装的组件中,以将显式传递的属性(ownProps)和Redux存储所处理的状态组合到props包装组件的中。

所以在您的链接示例中 FilterLink

const mapStateToProps = (state, ownProps) => ({
  active: ownProps.filter === state.visibilityFilter
})

this.props.active == true如果filter属性(例如SHOW_ALL)与visibiltyFilterin
匹配state,则该组件处于活动状态(),即当前是否由该值过滤。



 类似资料:
  • 我试图在一个容器中获取反应路由器的当前路径,这样我就可以将其传递给一个子组件,该组件将更改它的可见性过滤器。 更具体地说,我试图使导航菜单突出当前活动的页面。 我正在使用redux、redux、react-router和react-router-redux,这样我就可以从redux存储访问路由器状态。 从react-router-redux的docs中,它说要做这样的事情: 以下是我的容器组件:

  • 问题内容: 我正在使用React + Flux。我们的团队计划从助焊剂转变为还原剂。Redux对于来自助焊剂世界的我非常困惑。在 磁通控制中, 从 **组件- 操作->存储和存储更新返回组件 很** 简单。它很简单,也很清楚。 但在redux中令人困惑。这里没有商店,是的,有些例子没有使用商店。我经历了一些教程,看来每个人都有自己的实现风格。有些正在使用容器,有些则没有。(我不知道这个Contai

  • 问题内容: 我正在使用redux和react。这使得调度可以作为组件中的道具使用。因此,当我在调度键下的日志中看到以下对象时。 有人可以解释一下这是什么吗? 问题答案: 是Chrome开发者工具在C ++ 中(在源中)在内部添加和使用的私有属性。它显示了函数范围内的变量,即可以从该函数访问哪些变量。 例如: 在这里,附加到属性的函数在其范围内具有变量,因此当我们检查属性时,我们会看到类似 您可以在

  • 本文向大家介绍在redux中,什么是action?相关面试题,主要包含被问及在redux中,什么是action?时的应答技巧和注意事项,需要的朋友参考一下 state的改变,会导致view的变化,而我们只能接触view,action相当于view发出修改state的通知

  • 问题内容: 我想按照这个代码在 然后像这样在传奇中使用它: 该减速器(甚至是减速器)看起来与我通常期望的减速器看起来非常不同。 谁能解释选择器是什么,以及reduce-reducer以及reducer如何适合redux-saga? 问题答案: 不是缩减器,而是确实的选择器,即知道如何从存储中提取特定数据的函数。 选择器 提供了一个额外的层,这样,如果您更改了商店结构,突然之间您不再在该位置,而是在

  • 目录 为何组件没有被重新渲染、或者 mapStateToProps 没有运行? 为何组件频繁的重新渲染? 怎样使 mapStateToProps 执行更快? 为何不在被连接的组件中使用 this.props.dispatch ? 应该只连接到顶层组件吗,或者可以在组件树中连接到不同组件吗? React Redux 为何组件没有被重新渲染、或者 mapStateToProps 没有运行? 目前来看,