Tengo una matriz de estado de objetos que tiene dos pares clave-valor [{name: 'Max', value: 1}]
al actualizar el estado, recibo el nombre de api y lo comparo con api.name == state.name. si es cierto, necesito actualizar el valor como valor + 1. ¿Cómo lo logro con setState ()?
Puede usar el operador de propagación para actualizar el estado cambiando solo las propiedades del objeto.
this.setState({ array: this.state.array.map((item) => { const condition = "..."; // Implement logic return {...item, value: condition ? item.value + 1 : item.value } }) })Podrías actualizar el estado de esta manera:
const stateUpdated = state.map((item) => { if (name === item.name) { return { ...item, value: ++item.value, }; } else { return item; } }); setState(stateUpdated);Puede actualizar el valor como:
// por ejemplo, los datos a continuación provienen de la API
const array1 = [{ name: "Zee" }, { name: "Zee" }, { name: "Zee" }];//Su estado para actualizar el valor basado en el nombre
const [data, setData] = useState({ name: "Zee", value: 1 });// verifique si el nombre existe en los datos de API o no, si existe, incrementará el valor
array1.map((item) => { if (item.name === data.name) { setData({ ...data, value: data.value + 1 }); } }); console.log("check=", data);