reactjs - 如何正确分配 axios 响应以响应函数组件状态

标签 reactjs axios react-functional-component

我有标题中的问题。 我的代码给了我一个无限循环 - 控制台日志一直在循环。

我只想通过 .map() 将 axios 响应分配给组件状态和渲染元素

组件:

const Translator = () => {
    const [languages, setLanguages] = useState([]);
    getLanguages().then(data => {
       setLanguages(data.languages)
    });
    
    console.log(languages);
  
  return (
    <header className="translator__header">
        {languages.map( lang => {
            <h1>{lang.language}</h1>
        })}
    </header>
  );
};

资源:

export default () => {
    return Axios.get(`${config.baseURL}/languages`, {headers: config.headers}).then(res => {
        return res.data.data;
    });
}

请求给数组这样的对象

{language: "af"}

最佳答案

useEffect Hook 中发出 axios 请求,以便在安装组件后运行。

import { useEffect } from 'react';

const Translator = () => {
    const [languages, setLanguages] = useState([]);
    useEffect(() => {
      getLanguages().then(data => {
         setLanguages(data.languages)
      });

      console.log(languages);
    }, []);
    
  
  return (
    <header className="translator__header">
        {
          languages.length > 0 && (
            languages.map( lang => <h1>{lang.language}</h1>)
          )
        }
    </header>
  );
};

关于reactjs - 如何正确分配 axios 响应以响应函数组件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62923243/

相关文章:

node.js - 如何在 Promise 中使用循环

javascript - 在 Spotify API 中授权期间获取 HTTP 415 不支持的媒体类型

javascript - 带样式的组件动态标签名称

reactjs - React redux 模态,在确认模态上触发单个操作

javascript - 如果将 async/await 与 axios.post 一起使用,它会变得无限并忽略下面的代码,但发布结果是成功的

javascript - 使用 React 和 Axios 更新 Firebase 中的数据

reactjs - 如何将 props 从功能组件传递到类组件

javascript - 在 React 中迭代表单元素数组

功能组件无法访问 native 手势处理程序可滑动方法

css - 仅当我们单击模态内容外部时才关闭叠加层