【问题标题】:Cant set state using UseEffect in React.FC无法在 React.FC 中使用 UseEffect 设置状态
【发布时间】:2019-05-24 22:58:50
【问题描述】:

我有一个进行 API 调用的反应功能组件。拨打电话时肯定会得到响应。我正在尝试将数组保存到一个状态,以便可以检索它并与其他子组件一起使用。当我在保存响应之前控制台登录响应时,我得到:

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

但是当它保存时它会出现未定义......

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

【问题讨论】:

    标签: javascript reactjs typescript react-native


    【解决方案1】:

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

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

    控制台仅记录响应并检查控制台。找出响应的哪一部分保存了您需要的数组。

    【讨论】:

      猜你喜欢
      • 2020-08-26
      • 2020-11-14
      • 2020-04-05
      • 2021-05-24
      • 2021-03-26
      • 2021-04-10
      • 2021-08-30
      • 1970-01-01
      • 2022-01-23
      相关资源
      最近更新 更多