admin管理员组

文章数量:1023187

Is there any way I can set value of array in specific index with React imutability helper ?

For example something like this:

   const newState = update(this.state , {
        open[8]:{$set: false}
    })
    this.setState(newState);

or do I have to deep clone that array using JSON and then set new value at specific index and then use react imutability helper to update state?

Is there any way I can set value of array in specific index with React imutability helper ?

For example something like this:

   const newState = update(this.state , {
        open[8]:{$set: false}
    })
    this.setState(newState);

or do I have to deep clone that array using JSON and then set new value at specific index and then use react imutability helper to update state?

Share Improve this question asked Feb 23, 2017 at 16:48 ĽubomírĽubomír 1,2112 gold badges13 silver badges22 bronze badges 1
  • You could use { open: state.open.filter((value, index) => index != 8) } – Aaron Beall Commented Feb 23, 2017 at 20:37
Add a ment  | 

1 Answer 1

Reset to default 7

Assuming your state has the following format:

{
  open: [
    true,
    false,
    true,
    ...
  ]
}

I believe this should work:

const newState = update(this.state , {
  open: {
    8: {$set: false}
  }
})

Is there any way I can set value of array in specific index with React imutability helper ?

For example something like this:

   const newState = update(this.state , {
        open[8]:{$set: false}
    })
    this.setState(newState);

or do I have to deep clone that array using JSON and then set new value at specific index and then use react imutability helper to update state?

Is there any way I can set value of array in specific index with React imutability helper ?

For example something like this:

   const newState = update(this.state , {
        open[8]:{$set: false}
    })
    this.setState(newState);

or do I have to deep clone that array using JSON and then set new value at specific index and then use react imutability helper to update state?

Share Improve this question asked Feb 23, 2017 at 16:48 ĽubomírĽubomír 1,2112 gold badges13 silver badges22 bronze badges 1
  • You could use { open: state.open.filter((value, index) => index != 8) } – Aaron Beall Commented Feb 23, 2017 at 20:37
Add a ment  | 

1 Answer 1

Reset to default 7

Assuming your state has the following format:

{
  open: [
    true,
    false,
    true,
    ...
  ]
}

I believe this should work:

const newState = update(this.state , {
  open: {
    8: {$set: false}
  }
})

本文标签: javascriptReact immutability helperset new value at index in arrayStack Overflow