Reactjs 在react js中更新本地状态对象中的状态

Reactjs 在react js中更新本地状态对象中的状态,reactjs,Reactjs,我想更新状态中的最小值和最大值。如果我只更新最小值和最大值,其他两个状态将变为空 构造函数(道具){ 超级(道具); 此.state={ 参数:{ 一【】, 二:[], 最低:100000, 最高:5100000 } }; } 这是我的密码 select_price(price) { this.setState({ param: {min:price[0], max:price[1]}}); } 快速修复方法是获取整个文档,更改特定项目并设置状态: doc = this.state

我想更新状态中的最小值和最大值。如果我只更新最小值和最大值,其他两个状态将变为空

构造函数(道具){
超级(道具);
此.state={
参数:{
一【】,
二:[],
最低:100000,
最高:5100000
}
};
}
这是我的密码

select_price(price) {
     this.setState({ param: {min:price[0], max:price[1]}});
}

快速修复方法是获取整个文档,更改特定项目并设置状态:

doc = this.state.param
doc.min = price[0]
doc.max = price[1]}
this.setState({ param: doc });

不确定是否可以使用
setState
应用
$set
类操作快速修复方法是获取整个文档,更改特定项目并设置状态:

doc = this.state.param
doc.min = price[0]
doc.max = price[1]}
this.setState({ param: doc });

不确定是否可以将
$set
类型的操作应用于
setState

您正在用新状态替换整个状态。你应该这样做

  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在edit中所建议的,这是另一种方法

  select_price(price) {
     let paramState = {...this.state.param, min:price[0],max: price[1]};
     this.setState({ param: paramState);
  }

您正在用新状态替换整个状态。你应该这样做

  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在edit中所建议的,这是另一种方法

  select_price(price) {
     let paramState = {...this.state.param, min:price[0],max: price[1]};
     this.setState({ param: paramState);
  }

更新状态的代码在哪里?您使用的是
setState()
还是
replaceState()
?我使用的是setState()。您可以发布
setState()
命令吗?请共享状态更新代码更新状态的代码在哪里?您使用的是
setState()
还是
replaceState()
?我使用的是setState()。您可以发布
setState()
命令吗?请共享本地状态更新的代码。道具无法访问本地状态。this.props.param.get()引发错误:无法使用
this.state.param.get()
读取undefinedreplace的属性'get',然后?
this.state.param
不使用
.get()
?它处于本地状态。道具无法访问本地状态。this.props.param.get()引发错误:无法使用
this.state.param.get()
读取undefinedreplace的属性'get',然后?
this.state.param
不使用
.get()