react update array item in state code example
Example 1: how to update react state array
const [myArray, setMyArray] = useState([1,2,3])
// to update
setMyArray([...myArray, 4]); // --> myArray = [1,2,3,4]
Example 2: react how to update state array
const initialState = [
{ name: "foo", counter: 0 },
{ name: "far", counter: 0 },
{ name: "faz", counter: 0 }
];
const [state, setState] = useState(initialState);
const clickButton = () => {
// 1. Make a shallow copy of the array
let temp_state = [...state];
// 2. Make a shallow copy of the element you want to mutate
let temp_element = { ...temp_state[0] };
// 3. Update the property you're interested in
temp_element.counter = temp_element.counter+1;
// 4. Put it back into our array. N.B. we *are* mutating the array here, but that's why we made a copy first
temp_state[0] = temp_element;
// 5. Set the state to our new copy
setState( temp_state );
}
Example 3: update object in array state by index
this.setState(({items}) => ({
items: [
...items.slice(0,1),
{
...items[1],
name: 'newName',
},
...items.slice(2)
]
}));
Example 4: react native update state array of objects
let newMarkers = markers.map(el => (
el.name==='name'? {...el, key: value}: el
))
this.setState({ markers });