我有这个功能:
const mapStateToProps = function(state){
return {
products: state.products
}
};
并且商店是这样的:
var store = {
products: [1,2,3]
};
当我在连接组件中使用this.props.products时,我是否还需要这样做:
var products = this.props.products.slice();
制作副本,或者已经是副本。
答案 0 :(得分:3)
对于正常使用情况(例如,您使用来自connect()
的简单react-redux
函数而不是更可自定义的connectAdvanced()
),传递到您的组件的道具与你在mapStateToProps
中返回的内容。
由于mapStateToProps
的状态参数是对商店状态的直接引用,因此它们指的是Redux商店的实际状态。
因此,当您想要修改道具时,您首先需要复制它们。 如果你做一个浅拷贝,请注意更深层次的嵌套属性仍然引用它们在商店中的对应物,所以小心不要改变它们!