Я настраиваю этот редуктор так, чтобы после создания документа в firestore он возвращал полезную нагрузку в качестве состояния редуктора. Я пробовал использовать redux thunk, но я не думаю, что я использую его хорошо, потому что этот код удалит редуктор из расширения redux devtool.
switch (action.type) {
case "create-chatroom":
const room = action.payload.roomName;
return (dispatch) => {
const user = Auth.currentUser;
Db.collection("chatrooms")
.doc(action.payload.roomName)
.set({
authUsers: [user.uid],
messages: {
data: {
sender: "notification",
text: `${action.payload.roomName} has been created`,
timestamp: FieldValue.serverTimestamp(),
},
},
public: action.payload.public,
})
.then(() => {
dispatch({ type: "set-current-room", payload: room });
})
.catch((err) => {
dispatch({ type: "set-room", payload: state });
});
};
case "set-current-room":
return action.payload;