Когда создатель действия запускается для создания записи в Firestore следующим образом:
export const createProject = (project) => {
return (dispatch, getState, { getFirebase, getFirestore }) => {
// make async call to the database
const firebase = getFirebase();
firebase.collection('project').add({
project
}).then(() => {
dispatch({type: 'CREATE_PROJECT', project })
}).then(err => {
dispatch({type: 'CREATE_PROJECT_ERROR', err})
})
}
}
корневой редуктор сохраняет возврат от действия в соответствующее состояние следующим образом:
const rootReducer = combineReducers({
auth: authReducer,
project: projectReducer,
firestore: firestoreReducer
});
export default rootReducer;
Я пытаюсь понять, почему мы создаем несколько дубликатов в Firestore и двух глобальных состояниях (всего 3: Firestore
, project: projectReducer
и firestore: firestoreReducer
, которые одинаковы ). Я могу понять хранение данных в Firestore
, но кажется, что наличие двух состояний избыточно. Разве не достаточно firestore: firestoreReducer
, который синхронизирует firestore
с глобальным состоянием? Когда мы mapStateToProps, мы используем реквизит из пожарного магазина, а не из штата в любом случае.