javascript - 异步 API 调用的无效 Hook 调用

标签 javascript reactjs react-native react-redux react-hooks

我正在尝试在我的功能组件中使用像 useMemouseEffect 这样的 react 钩子(Hook)。 API 调用是异步的,我认为这可能是导致错误的原因。

服务文件:

export const getData = (): wretch =>
  fetch('/d/get_data')
    .get()
    .json();

数据格式化逻辑文件:

import {getData} from './services';

export const formatData = (onClick, onSort) => {
  // logic here - omitted
  const formattedData = [];
  return getData().then(res => {
    res.forEach( 
      // more data formatting logic
    )
    return {formattedData: formattedData, originalData: res};
})};

渲染文件:

import {formatData} from './formatData';

const MyTable = () => {
  useEffect(() => formatData({onClick: handleClick, onSort: handleSort}).then(res => setData(res)), []);

错误消息:

enter image description here

最佳答案

您对 useEffect 中不能包含异步代码的部分是正确的。解决方法与您正在做的类似。

useEffect(() => {

  async function myfunc(){
    // Do async work
    const response = await apiCall();
    setData(response);

  }
  myFunc();
},[]) 

这可能无法回答您的问题,但这是您可能会发现有用的常见模式:)

关于javascript - 异步 API 调用的无效 Hook 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64814178/

相关文章:

javascript - javascript 中的数字不是条件

javascript - 在 Vue 组件内将 webSDK 与 jQuery 集成?

javascript - 如何填充嵌套数组引用? Mongoose

css - 如何用 React 覆盖默认的 MaterialUI 样式?

react-native - React Native Text Element - 使用同名导入

javascript - 我正在使用 react-native-photo-upload 库上传个人资料图片,但它抛出构建失败错误

javascript - React Native 卡片图像封面

javascript - Javascript 中的事件对象,查找信息时遇到问题

reactjs - 如何在react-grid-gallery组件中设置每个缩略图的样式

reactjs - NX Monorepo 使用一个 UI 组件库,具有多个具有不同主题的应用程序