【问题标题】:React UseEffect fetch not functioningReact UseEffect fetch 不起作用
【发布时间】:2022-01-26 21:25:35
【问题描述】:

我有一个服务,它返回“res”中的记录数组。在我的 REACT 组件中效果很好。我需要在函数中检索相同的数据,但我认为我的语法是错误的,因为我没有得到任何数据。

这是服务的代码: ...

import axios from 'axios';
import * as myConstants from '../Services/User_API_Base_URL'
class UserService {
    getUsers(){
        return axios.get(myConstants.USER_API_BASE_URL + "users");
    }
}
export default new UserService() 

...

下面是 Component 中运行良好的代码: ...

componentDidMount= async (event)=>{
  UserService.getUsers().then((res) => {
        this.setState({ users: res.data});
    });  
  }

...

这是函数中的代码,它似乎没有将任何内容放入“datau” ...

const [datau, setDatau] = useState([]);
  useEffect(() => {
    const doFetchuser = async () => {
      setDatau(UserService.getUsers())
    };
    doFetchuser();
  }, []);

...

任何帮助使其工作的帮助将不胜感激。我刚刚开始熟悉 Functions\Hooks 等。

罗伯

【问题讨论】:

  • 异步但没有等待?
  • await UserService.getUser()?
  • 这是一个异步/等待的示例,用于调用 API stackoverflow.com/questions/53332321/…的 useEffect
  • 没有变化。 @Subrato Pattanaik
  • Bravo ...两种方法都有效! @jsN00b

标签: arrays reactjs fetch use-effect


【解决方案1】:

感谢@jsNOOb:

这是工作代码

const [data, setData] = useState([]);
  useEffect(() => {
    const doFetch = async () => { const res = await UserService.getUsers(); 
      setData(res.data) };
    doFetch();
  }, []);

【讨论】:

    猜你喜欢
    • 2016-08-12
    • 1970-01-01
    • 2020-04-18
    • 2022-07-20
    • 2023-01-13
    • 2021-06-29
    • 2021-11-15
    • 2020-07-15
    • 2017-05-15
    相关资源
    最近更新 更多