tengo un problema al empujar el objeto a la matriz... quiero un resultado como este... [{b:"a"},{b:"c"}]
con este codigo
const [list, setList] - useState({occupation_id: ""}); const handleAdd = () => { let arr = []; const newData = {...list}; newData[e.target.id] = e.target.value; arr.push(newData); setList(arr); }pero el resultado del siguiente código es
[{{occupation_id: "2"}, occupation_id: "1"}]
¿Cuál es el problema con mi código?
Puede resolverlo fácilmente con esta solución, intente esto:
const [list, setList] = useState([]); // your initial data const handleAdd = () => { setList([...list, {e.target.id:e.target.value}]); }Prueba esto :
const [list, setList] = useState([]); const handleAdd = () => { setList([...list, {[e.target.id]:e.target.value}]); }const [list, setList] = useState([{occupation_id: "1"}, {occupation_id: "2"}]); const handleAdd = (id, value) => { const newData = [...list] newData.push({id, value}); setList(newData); console.log(newData) }