无法在React.FC中使用UseEffect设置状态

时间:2019-05-24 22:58:50

标签: javascript reactjs typescript react-native

我有一个正在执行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

但是在保存时会出现未定义的状态...

我不知道如何正确保存响应...

1 个答案:

答案 0 :(得分:0)

尝试使用空数组初始化状态。

const [helpFiles, setHelpFiles] = useState([]);

控制台仅记录响应并检查控制台。查找响应的哪一部分包含所需的数组。