Tengo una matriz en un useState. y quiero editar una propiedad.
const [equipe_montador, setEquipe_Montador] = useState([]); <Card title="Adicionar Mão de Obra"> {equipe_montador.map((item, key) => <div key={key}> <InputBox type="number" maxLength={6} title={item.nome} value={item.quantidade} onChange={e => setEquipe_Montador([...equipe_montador, { ...item, quantidade: e.target.value }])} /> </div> )} </Card>Pero, cuando edito el valor, el elemento se duplica.
He descubierto la solución. Está funcionando, pero no sé si es el mejor enfoque. Edito el objeto y creo una nueva lista con el objeto editado.
<Card title="Adicionar Mão de Obra"> {equipe_montador.map((item, key) => <div key={key}> <InputBox type="number" maxLength={6} title={item.nome} value={item.quantidade} onChange={e => { var new_array = equipe_montador.map((new_obj) => new_obj.id_objeto === item.id_objeto ? { ...new_obj, quantidade: e.target.value } : new_obj); setEquipe_Montador(new_array); } } /> </div> )} </Card>