繁体   English   中英

将 object 推送到 reactjs 中的数组?

[英]pushing object to array in reactjs?

我在将 object 推送到数组时遇到问题..我想要这样的结果.. [{b:"a"},{b:"c"}]

使用此代码

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);
}

但是下面代码的结果是

[{{occupation_id: "2"}, occupation_id: "1"}]

我的代码有什么问题?

您可以使用此解决方案轻松解决它,试试这个:

const [list, setList] = useState([]); // your initial data
const handleAdd = () => {
 setList([...list, {e.target.id:e.target.value}]);
}

尝试这个:

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)
}

像数组一样定义 state:这可行

const [list, setList] = useState([{occupation_id: "2"}]);

const handleAdd = (e) => setList([...list, { e.target.name: e.target.value }])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM