首页 > 解决方案 > 通过 Context API 映射数据?

问题描述

在我的 React App 的 Context API 中,我有这个功能

 const [coins, setCoins] = useState({});
const fetchCoins = async (category) => {
if (coins[category]) {
  return;
}
let { data } = await axios({
  method: "get",
  url: `/api/coins/getCoins`,
  params: { category },
});
const newCoins = { ...coins };
newCoins[category] = data;
setCoins(newCoins);

};

在我的一个组件中

   const [coinData, setCoinData] = useState([]);
    useEffect(() => {
    const loadData = async () => {
      setLoading(true);
      const data = await myContext.fetchCoins(currentCategory);
      setCoinData(myContext.coins);
      setLoading(false);

    };
    loadData();
      }, [currentCategory, myContext]);

但是 coinData 是未定义的?是因为取所有硬币需要一段时间吗?如果是这样,我如何让 setCoinData 等待,以便在上下文 api 中的获取完成后,我可以存储该数据?谢谢

标签: javascriptreactjs

解决方案


推荐阅读