我有一个正在执行API调用的react功能组件。肯定会在拨打电话时得到响应。我试图将数组保存为一种状态,以便可以检索它并将其与其他子组件一起使用。当我在保存响应之前在控制台中登录控制台时,我得到:
console.log(response.data)
我得到[{},{}]
我的代码是
const [helpFiles, setHelpFiles] = useState<HelpDTO[]>([]);
useEffect(() => {
helpApi.getHelpFiles().then((response) => {
if (response.status !== 200) return;
console.log(response.data)
setHelpFiles(response.data.data);
});
})
response.data.data
未定义,但是如果我尝试保存response.data
,则会引发错误:
Argument of type 'HelpGetResponse' is not assignable to parameter of type 'SetStateAction<HelpDTO[]>'.
Type 'HelpGetResponse' is not assignable to type '(prevState: HelpDTO[]) => HelpDTO[]'.
Type 'HelpGetResponse' provides no match for the signature '(prevState: HelpDTO[]): HelpDTO[]'.
所以我必须将其另存为response.data.data
但是在保存时会出现未定义的状态...
我不知道如何正确保存响应...
答案 0 :(得分:0)
尝试使用空数组初始化状态。
const [helpFiles, setHelpFiles] = useState([]);
控制台仅记录响应并检查控制台。查找响应的哪一部分包含所需的数组。