我正在使用 Firebase 开发 React 应用程序。我想在dispatch完成后调用第一个函数。每个用户都分配了一个currentcity,但我不希望currentcity被删除,因为这会破坏应用程序。所以我想要做的是在调用 deleteCity 函数之后运行 changeCurrentCity 函数,这样就不会发生这种情况。我只是想将 currentcity 分配给列表中的第一个。
changeCurrentCity()不从内运行.then()的deleteCity。我试过 console.log-ing 它,它只显示功能本身。我确定这只是一个简单的修复,但我不知道我在做什么。
const changeCurrentCity = (city) => {
return (dispatch, getState, { getFirebase, getFirestore }) => {
const firestore = getFirestore();
const userId = getState().firebase.auth.uid;
firestore.collection('users').doc(userId).update({
currentcity: city
}).then(() => {
dispatch({ type: 'UPDATE_CITY', city });
}).catch((err) => {
dispatch({ type: 'UPDATE_CITY_ERROR', err});
})
}
};
const deleteCity = (city) => {
return (dispatch, getState, { getFirebase, getFirestore }) => {
const firestore = getFirestore();
firestore.collection('cities').doc(city.id).delete().then(() => {
dispatch({ type: 'DELETE_CITY', city });
}).then(() => {
changeCurrentCity(getState().firestore.data.cities[Object.keys(getState().firestore.data.cities)[0]].userid);
}).catch((err) => {
dispatch({ type: 'DELETE_CITY_ERROR', err});
})
}
};
export {changeCurrentCity, deleteCity}
问题出在deleteCity. changeCurrentCity删除城市后未运行。
翻阅古今
相关分类