如何在使用中处理获取的数据

马修

当我尝试处理来自api的数据时,请使用它进行渲染,但是由于处理功能不等待提取功能,我总是会遇到异步问题。

const [fetchData1, setData1] = useState([]);
const [fetchData1, setData2] = useState([]);
const [processedData, setProcessedData] = useState([]);

useEffect(() => {
 const getData1 = async () => {
  //get data1 using axios
  //setData1(response)
 }
 const getData2 = async () => {
  //get data2 using axios
  //setData2(response)
 }
 getData1();
 getData2();
 setProcessedData(processData(fetchData1, fetchData2));
}, [])

const processData = (data1, data2) => {
 //process two data
 //return data;
}

即使我尝试将两个获取函数和流程函数包装在异步函数中,但问题仍然相同。

(async () => {
  await getData1();
  await getData2();
  setProcessedData(processData(fetchData1, fetchData2));
})
TJ人群

读你的问题,据我可以告诉你不需要fetchData1fetchData2你只想processedData当前代码的问题在于,它使用的默认值,fetchData1并且fetchData2在调用时setProcessedData,没有使用axios的结果。

等待两个诺言达成并使用它们的结果。看评论:

const [processedData, setProcessedData] = useState([]);

useEffect(() => {
    const getData1 = async () => {
        //get data1 using axios
        //setData1(response)
    };
    const getData2 = async () => {
        //get data2 using axios
        //setData2(response)
    };
    // *** Wait for both promises to be fulfilled
    Promise.all(
        getData1(),
        getData2()
    ).then([data1, data2]) => { // Get those results into parameters
        // *** Use the parameter values
        setProcessedData(processData(data1, data2));
    }).catch(error => {
        // handle/report error
    });
}, []);

// *** render using the current values in `processedData`

请注意,由于在首次创建组件时才执行此操作,因此当组件中的其他状态发生更改(如果它具有其他状态)时,您无需担心取消它等操作。如果调用依赖于您在依赖项数组中列出的其他状态数据,则在调用axios的过程中如果其他数据发生了更改,则可能需要忽略先前的结果。但同样,您在这里所做的也不是。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Angular中处理大数据

来自分类Dev

如何在Firebase中获取同步数据?

来自分类Dev

如何在mongoengine中获取ReferenceField数据?

来自分类Dev

如何在Android中处理大数据?

来自分类Dev

如何在Yesod中获取发布数据?

来自分类Dev

如何在构建属性中处理多维数据以使用foreach处理它们?

来自分类Dev

如何在XSL文件中获取数据

来自分类Dev

如何使用AJAX发送POST数据?以及如何在Web API中获取POST数据?

来自分类Dev

如何在代码中建立或处理数据?

来自分类Dev

如何在React中获取数据属性?

来自分类Dev

通过多处理使用池时如何在函数中获取进程号

来自分类Dev

如何在python中获取csv数据

来自分类Dev

如何在WebAPI中获取POST数据?

来自分类Dev

如何在Android中处理大数据?

来自分类Dev

如何在Swift中处理JSON数据

来自分类Dev

如何在javascript中处理json数据

来自分类Dev

如何在mongodb中批量获取数据

来自分类Dev

如何在数据框中按行处理数据

来自分类Dev

如何在Koa中处理GET数据

来自分类Dev

如何在magento中获取运输数据

来自分类Dev

如何在Swift中从NSMutableURLRequest获取数据?

来自分类Dev

如何在Android中从XML获取数据

来自分类Dev

如何在Firebase中获取数据?

来自分类Dev

如何在ios中使用GCD获取队列中的数据

来自分类Dev

如何在python中获取json的数据

来自分类Dev

如何在 jQuery 中获取 AJAX 数据?

来自分类Dev

如何在 Codeigniter 中获取会话数据

来自分类Dev

如何在 Firebase 中获取孩子的数据

来自分类Dev

如何在Rails中获取必要的数据