我不理解ownProps在docs中的工作方式,请帮我澄清以下内容:
如果将ownProps指定为第二个参数,则其值将为 传递给组件的道具
如果我有3个组件 - 1. todoList,todo和connectedTodo(=connect(mapStateToProps, mapDispatchToProps, ownProps)(todo)
,并且todolist渲染了很多connectedTodos并将道具传递给他们,这是否意味着,todo将有权访问传下来的道具来自todolist?如果我没有指定ownProps,那么todo WON&T; T可以访问传递给connectedTodo的道具吗?
每当组件时,都会重新调用mapStateToProps 收到新的道具
这是否意味着每当todoList将新道具传递给connectedTodo时,除了订阅状态发生变化外,还会调用其mapStateToProps吗?
如果我想在mapStateToProps
内做一些逻辑并希望引用connectedTodo的道具,我可以使用this.props
吗?
示例:
const mapStateToProps = function (state) {
data: state.otherSlice.name === this.props.name ? state.data: null
}
答案 0 :(得分:0)
ownProps
作为参数,Todo也可以访问传递的道具。 ownProps
适用于第二个问题中描述的情况。如果只有在组件当前name
prop具有相同名称时才需要填充数据属性,那么这个小代码修改如何:
function mapStateToProps(state, ownProps) {
return {
...ownProps,
data: state.otherSlice.name === ownProps.name ? state.data : null
}
}
您提供的文档页面底部还有几个样本。