Reactjs 如何使用钩子在react native中分派多个动作?
从下面的代码中,我尝试调度两个操作,从firestore数据库用户集合中获取登录用户的注册名称和姓氏,并更新我的应用程序中的名称和姓氏状态。但是,由于某些原因,只有第二个操作被调度。我的应用程序中的姓氏状态已更新,但名称状态仍为空 我曾尝试使用异步函数调用分派,但仍然没有任何结果。我试着将分派代码移动到代码的不同部分,但仍然一无所获。不管我把代码放在哪里,只调用第二个分派。到目前为止,一切似乎都不起作用。我似乎不能让两个调度只工作一个。作为补充说明,我没有使用redux,或者任何中间件都只是对useReducer和useContext进行响应Reactjs 如何使用钩子在react native中分派多个动作?,reactjs,firebase,react-native,google-cloud-firestore,Reactjs,Firebase,React Native,Google Cloud Firestore,从下面的代码中,我尝试调度两个操作,从firestore数据库用户集合中获取登录用户的注册名称和姓氏,并更新我的应用程序中的名称和姓氏状态。但是,由于某些原因,只有第二个操作被调度。我的应用程序中的姓氏状态已更新,但名称状态仍为空 我曾尝试使用异步函数调用分派,但仍然没有任何结果。我试着将分派代码移动到代码的不同部分,但仍然一无所获。不管我把代码放在哪里,只调用第二个分派。到目前为止,一切似乎都不起作用。我似乎不能让两个调度只工作一个。作为补充说明,我没有使用redux,或者任何中间件都只是对u
firebase.auth().onAuthStateChanged(user => {
if (user) {
const userId = user.uid;
const db =
firebase.firestore().collection('users').doc(userId);
db.get()
.then(userId => {
if (userId) {
dispatch({
type: 'fill_name',
payload: userId.data().Name
})
dispatch({
type: 'fill_surname',
payload: userId.data().Surname
})
} else {
return null;
}
})
} else {
navigate('Intro');
}
});
您不能从一个操作中分派两次的原因是第一次创建{dispatch}逻辑的主要原因。因为有一个地方,里面有所有的“应用真理”,有一种改变律法的方法,有一座山可以得到一个 你能做的就是像这样发送名字和姓氏-
firebase.auth().onAuthStateChanged(user => {
if (user) {
const userId = user.uid;
const db =
firebase.firestore().collection('users').doc(userId);
db.get()
.then(userId => {
if (userId) {
dispatch({
type: 'fill_name',
firstName: userId.data().Name
surName: userId.data().Surname
})
} else {
return null;
}
})
} else {
navigate('Intro');
}
});
当在减速器中听到这个动作时-
action.firstName
直呼其名