【发布时间】:2020-08-19 16:36:22
【问题描述】:
我正在努力弄清楚如何在setArr(list) 被填充后触发我的moveToResults() 函数。我觉得应该有一个简单的方法来使用new Promise 来做到这一点,但我似乎无法弄清楚。
const [arr, setArr] = useState([]);
const handlePress = ()=>{
var list = [];
firebase.firestore().collection('PostedFunEvents').where("location", "==" , place).get().then((querySnapshot) =>{
querySnapshot.forEach((doc) =>{
list.push(doc.data());
})
setArr(list);
}).then(()=>{
console.log(arr.length);
}).then(()=>{
moveToResults(); // AT THIS POINT ARR.LENGTH IS STILL 0
});
}
这是我的moveToResults() 函数:
const moveToResults = () =>{
navigation.navigate('Results', {arr: arr})
}
问题
我如何确保moveToResults()fires 一次setArr(list) 完成?
我基本上想确保当moveToResults() 被触发时arr 被填充。否则我什么也不传递到下一个屏幕。
【问题讨论】:
标签: reactjs react-native