我想更新min&最大的州。如果我只更新min&最大,其他两个州正在变空。
constructor(props) {
super(props);
this.state = {
param: {
one: [],
two: [],
min: 100000,
max: 5100000
}
};
}
这是我的代码。
select_price(price) {
this.setState({ param: {min:price[0], max:price[1]}});
}
答案 0 :(得分:3)
你正用新状态取代整个州。你应该做这样的事情
select_price(price) {
let paramState = {...this.state.param}; //works with es6 only
paramState.min = price[0];
paramState.max = price[1];
this.setState({ param: paramState);
}
根据@ markm247的编辑建议,另一种方法
select_price(price) {
let paramState = {...this.state.param, min:price[0],max: price[1]};
this.setState({ param: paramState);
}
答案 1 :(得分:0)
快速解决方法是获取整个文档,更改特定项目并设置状态:
doc = this.state.param
doc.min = price[0]
doc.max = price[1]}
this.setState({ param: doc });
不确定是否可以对$set
setState
类型的操作