Как изменить состояние редуктора, который содержит функцию firestore asyn c - PullRequest
0 голосов
/ 19 июня 2020

Я настраиваю этот редуктор так, чтобы после создания документа в 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;
...