使用外部Axios和useEffect的React最佳实践

baubqpgj  于 2023-05-06  发布在  iOS
关注(0)|答案(1)|浏览(158)

我一直在寻找2023年的好答案。如何以最佳方式处理React +外部Axios + useEffect?
让我给你看看我的代码:

export const getTransactions = async () => {
  try {
    const response: any = await axios.get('transactions');
    return response.data.transactions;
  } catch (e) {
    console.log('Get Transactions Error', e);
  }
};
  • 使用它
useEffect(() => {
    const data = getTransactions();
    console.log('INSIDE DATA', data);
    setTransactions(data);
  }, []);

我想获取数据一次=〉但我正在接收Promise。我真的需要在getTransactions()上做.then吗?或者今天有更聪明的方法来返回数据而不是Promise?
感谢团队!

owfi6suc

owfi6suc1#

getTransactions返回一个promise,所以你需要等待结果。但是在useEffect中不能有异步回调,所以可以这样做

useEffect(() => {
  const fetchTransactions = async () => {
    const data = await getTransactions();    // <- await this result
    console.log('INSIDE DATA', data);
    setTransactions(data);
  }
    
  fetchTransactions();
    
}, []);

useEffect(() => {
  getTransactions().then(data => {
    console.log('INSIDE DATA', data);
    setTransactions(data);
     
   });
  }, []);

相关问题