我的容器如下:
ItemContainer.js
const mapStateToProps = (state, ownProps) => () =>
console.log('ownprops.edit is:', ownProps.edit) ||
selectTaskItem(ownProps);
列表组件如下所示:
<Item
item={item}
edit={console.log('passing edit:', edit) || edit}
key={item.id}
/>
它记录以下内容
List.js:22 passing edit: {1: {…}}
List.js:22 passing edit: {1: {…}}
List.js:22 passing edit: {1: {…}}
Item.js:6 ownprops.edit is: {}
Item.js:6 ownprops.edit is: {}
Item.js:6 ownprops.edit is: {}
有3个项目,因此它在List.js中记录了3次,在Item中记录了3次,但是日志之间的编辑消失了,我不知道它去了哪里。
答案 0 :(得分:0)
在列表项中,您可以让mapStateToProps返回一个函数,但是在返回的函数中传递ownProps:
const mapStateToProps = () => (state, ownProps) =>
console.log('ownprops.edit is:', ownProps.edit) ||
selectTaskItem(ownProps);