Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在react功能组件中将对象数组附加到当前状态_Javascript_Reactjs_State - Fatal编程技术网

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状态后的预期输出是什么?