Redux - mapStateToProps 返回的状态是商店状态的副本吗?
Redux - Is the state that is returned by mapStateToProps a copy of the store state?
我有这个功能:
const mapStateToProps = function(state){
return {
products: state.products
}
};
店铺是这样的:
var store = {
products: [1,2,3]
};
当我在connected component中使用this.props.products时,是否还需要这样做:
var products = this.props.products.slice();
制作副本,或者已经是副本。
对于正常用例(例如,您使用 react-redux
中的简单 connect()
函数,而不是更具自定义性的 connectAdvanced()
),传递给组件的道具是准确的与您在 mapStateToProps
.
中 return 相同
由于 mapStateToProps
的状态参数是对商店状态的直接引用,因此它们指的是 Redux 商店的实际状态。
因此,当你想要修改道具时,你首先需要复制它们。
如果您进行浅拷贝,请注意 更深层次的嵌套属性 仍然引用它们在商店中的对应项,因此请注意不要改变它们!
我有这个功能:
const mapStateToProps = function(state){
return {
products: state.products
}
};
店铺是这样的:
var store = {
products: [1,2,3]
};
当我在connected component中使用this.props.products时,是否还需要这样做:
var products = this.props.products.slice();
制作副本,或者已经是副本。
对于正常用例(例如,您使用 react-redux
中的简单 connect()
函数,而不是更具自定义性的 connectAdvanced()
),传递给组件的道具是准确的与您在 mapStateToProps
.
由于 mapStateToProps
的状态参数是对商店状态的直接引用,因此它们指的是 Redux 商店的实际状态。
因此,当你想要修改道具时,你首先需要复制它们。 如果您进行浅拷贝,请注意 更深层次的嵌套属性 仍然引用它们在商店中的对应项,因此请注意不要改变它们!