Javascript 使用异步函数REACT createContext返回axios数据
我正在创建React上下文,但它返回一个承诺。在playlitycontext.js文件中,我有以下代码:Javascript 使用异步函数REACT createContext返回axios数据,javascript,reactjs,Javascript,Reactjs,我正在创建React上下文,但它返回一个承诺。在playlitycontext.js文件中,我有以下代码: import React,{useffect}来自“React”; 从“../services/YouTube”导入YouTube; const playlistdata=YouTube.getPlaylists(); //console.log(播放列表数据); const playlistadacontext=React.createContext(playlistdata); co
import React,{useffect}来自“React”;
从“../services/YouTube”导入YouTube;
const playlistdata=YouTube.getPlaylists();
//console.log(播放列表数据);
const playlistadacontext=React.createContext(playlistdata);
const playlistadaprovider=(道具)=>{
const[playlists,setPlaylists]=React.useState(playlistdata);
useffect(()=>{
const playlistdata=YouTube.getPlaylists();
console.log(播放列表数据);
设置播放列表(播放列表数据);
},[])
返回{props.children};
}
导出{playlistadacontext,playlistadaprovider}
setPlaylists
在YouTube.getPlaylists()
之后立即调用
您应该能够使用。然后()
:
您还可以在useffect()中创建异步函数:
getPlaylists
是一个async
函数,而async
函数总是返回承诺。这就是你的意思吗?
useEffect(() => {
const playlistsData = YouTube.getPlaylists();
console.log(playlistsData); // playlistsData is not fetched
setPlaylists(playlistsData);
},[])
YouTube.getPlaylists().then(response => {
console.log(response);
setPlaylists(response);
});
useEffect(() => {
const getYTPlaylist = async () => {
const playlistsData = await YouTube.getPlaylists();
console.log(playlistsData);
setPlaylists(playlistsData);
}
getYTPlaylist();
},[])