Javascript 如何在react功能组件中将对象数组附加到当前状态
这是我的州Javascript 如何在react功能组件中将对象数组附加到当前状态,javascript,reactjs,state,Javascript,Reactjs,State,这是我的州 const[dataItem,setDataItem]=useState({ id:null, 代码:空, 标题:空, 普伦特:空, unitId:null, }); 我想把文件附加到dataItem状态 let文件=[ { uid:'1', 名称:items.file, 状态:“完成”, }, ]; setDataItem({…dataItem,文件}); 但它不是附加到dataItem,而是被替换,其他元素(例如id、代码、标题)将为空 追加文件后的dataItem状态 {
const[dataItem,setDataItem]=useState({
id:null,
代码:空,
标题:空,
普伦特:空,
unitId:null,
});
我想把文件附加到dataItem状态
let文件=[
{
uid:'1',
名称:items.file,
状态:“完成”,
},
];
setDataItem({…dataItem,文件});
但它不是附加到dataItem,而是被替换,其他元素(例如id、代码、标题)将为空
追加文件后的dataItem状态
{
"id": null,
"code": null,
"title": null,
"prent": null,
"unitId": null,
"file":[{
"uid": "1",
"name": "u104.svg",
"status": "done"
}]
}
因为状态被初始化为
对象
,而不是数组
。应该是
const [dataItem, setDataItem] = useState([{
id: null,
code: null,
title: null,
prent: null,
unitId: null,
}]);
更新dataItem
时,还必须扩展数组文件
setDataItem({…dataItem,…file})代码>
阅读更多=>
要附加文件
以保持以前的状态不变,您需要使用功能更新
let file = [
{
uid: '1',
name: items.file,
status: 'done',
},
];
setDataItem(prevState => ({ ...prevState, file }));
将文件追加到dataItem状态后的预期输出是什么?