【发布时间】:2023-01-09 03:06:55
【问题描述】:
我有一段代码使用 useEffect 挂钩从 Firebase 存储中获取文件列表的元数据。然而,我很难在这个 useEffect 中更新我的状态。我已经使用 async/await 模式来减轻 setState 的异步性质,但收效甚微。
我的 sn-p 伪代码:
const [someData,setSomeData]=useState([])
const dataArray=[]
useFocusEffect(
useCallback(()=>{
async function getData(){
const result=await listAll(storageRef);
await result.items.map(async (itemRef)=>{
const Metadata=await getMetadata(itemRef);
await dataArray.push({'name':Metadata.name})
await console.log(dataArray) //shows the array being populated on each iteration
})
await setSomeData(dataArray);
await console.log(someData) // I'm expecting it to print an updated state, prints an empty array instead
}
getData()
},[])
)
我似乎也无法访问代码返回部分中的状态:
return(
{someData.map(({item})=>{
return(
<View><Text>{item.name}</Text><View>)})
据我所知,什么都不输出。
我的方法缺少什么?
提前致谢
【问题讨论】:
标签: firebase react-native react-native-firebase