在React JS的this.state中编写嵌套对象

时间:2018-11-30 04:16:26

标签: reactjs

我正在尝试在React中创建一个处于状态的对象。我需要'status'实际上是由setState更新的字段

 this.state = {
        data:[],
        sort: 0,
        field:"",
        filters:{
            'status':{
                value:""
            }

代码应为:

this.state = {
        data:[],
        sort: 0,
        field:"",
        filters:{
            field:{
                value:""
            }

如何将同一对象设置为嵌套对象?

4 个答案:

答案 0 :(得分:2)

您可以这样做。.

let filters = {
  field:{
    value: ""
  }
};

this.setState({filters});

答案 1 :(得分:2)

您可以这样做:

this.setState({
  filters: { ...this.state.filters, field: { value: 'new value' },
});

但是以上语法很难看。我建议您使用immutability-helper包来更新状态。

有关如何使用immutability helper更新状态的信息,请参见此答案。

答案 2 :(得分:1)

检查一下:

this.setState({filters:{[field]:{value:e}}

答案 3 :(得分:0)

嵌套对象的设置状态。

 this.state = {
        data:[],
        sort: 0,
        field:"",
        filters:{
            status:{
                value:""
            }

如果我们要使用setState方法更新“状态”,请遵循此方法,这可能会对您有所帮助。

let filters = {...this.state.filters}
filters.status = { value: 10 };
this.setState({filters})

引用此文档:Link