reactjs - 如何更改包含 Firestore 异步功能的减速器的状态
问题描述
我正在配置这个reducer,以便在firestore上创建一个文档后,它将payload作为reducer状态返回。我尝试使用 redux thunk,但我认为我使用得不好,因为这段代码会从 redux devtool 扩展中删除 reducer。
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;
解决方案
推荐阅读
- python - Python Django 无法转到另一个页面中的所需链接
- javascript - 为什么通过 JavaScript 添加样式不起作用
- python - 有没有办法简化这个 if 语句?
- ios - 返回视图时Swift Timer不会重新启动
- javascript - Vue 3 中的 SSR 和 keep-alive 问题:动态组件
- github - GitHub 操作需要从私有 GitHub 注册表恢复 NuGet 包
- reactjs - ELIFECYCLE errno 1 在使用 expo 的反应应用程序中执行 npm start 时:开发服务器崩溃
- prometheus - 带有标签提供的值(状态)的 Grafana 状态时间线面板
- html - 带有垂直资源的完整日历 - 使日边界更加突出
- github - GitHub Actions Env 中的 NPM 未安装包