我如何引用连接(容器)组件's道具内mapStateToProps

How do I reference connected (container) component's props inside mapStateToProps?

本文关键字:mapStateToProps 容器 何引用 引用 连接 组件      更新时间:2023-09-26

我不明白ownProps在文档中是如何工作的,请帮助我澄清以下内容:

  1. 如果ownProps被指定为第二个参数,它的值将是传递给组件的Props

如果我有3个分量- 1。todoList, todo和connectedTodo (=connect(mapStateToProps, mapDispatchToProps, ownProps)(todo), todoList呈现了许多connectedTodo并向它们传递道具,这是否意味着todo可以访问从todoList传递下来的道具?如果我没有指定ownProps,那么todo将无法访问传递给connectedTodo的道具?

  • mapStateToProps将被额外地重新调用接收新的道具

  • 这是否意味着无论何时todoList将新道具传递给connectedTodo,它的mapStateToProps将被调用,除了它订阅的状态发生变化之外?

    如果我想在mapStateToProps中做一些逻辑,并想引用connectedTodo的道具,我可以只使用this.props吗?

    的例子:

    const mapStateToProps = function (state) {
      data: state.otherSlice.name === this.props.name ? state.data: null
    }
    

    1. Todo将有访问传递的道具,即使你不指定ownProps作为参数。ownProps在你的第二个问题中描述的情况下很好用。
    2. 如果你需要有数据属性填充只有当它有相同的名称与组件当前name prop,如何这个小的代码修改:

      function mapStateToProps(state, ownProps) {
        return { 
          ...ownProps, 
          data: state.otherSlice.name === ownProps.name ? state.data : null 
        }
      }
      

    您提供的文档页底部还有几个示例