reactjs - 已选择要删除的产品 ID,但产品数据仍在 Firebase 上
问题描述
我正在通过 redux-saga 实现删除产品功能,这是我的 deleteProduct 功能代码
import firebaseApp from "./config";
const firebaseDb = firebaseApp.database();
export const deleteProduct = (productId) => {
return firebaseDb
.ref("products")
.child(productId)
.remove()
.then(() => {
console.log(`Deleted ${productId}`)
return { status: "ok" }
})
.catch(() => ({ status: "error" }));
}
在我运行单击删除按钮后,它已经显示产品 id 已被删除,但产品数据并未从数据库中删除。
这是我的reducer
const deleteProductRequest = (state, action) => ({
...state,
loading: true,
type: action.type,
});
const deleteProductSuccess = (state, action) => ({
...state,
loading: false,
product: action.data,
type: action.type,
});
const deleteProductFailure = (state, action) => ({
...state,
loading: false,
error: action.error,
type: action.type,
});
这是我的saga
export function* deleteProductRequest(action) {
try {
const { productId } = action;
const response = yield call(deleteProduct, productId);
if ((response.status === "ok")) {
yield put(Creators.deleteProductSuccess(response.product));
} else {
yield put(Creators.deleteProductFailure(response.error));
}
} catch (error) {
yield put(Creators.deleteProductFailure(error));
}
}
我的容器是这样的
import { connect } from "react-redux";
import { Creators } from "../../actions/productAction";
import ProductTable from "../../pages/ProductTable";
const mapStateToProps = (state) => ({
products: state.product.products,
product: state.product.product,
loading: state.product.loading,
error: state.product.error,
});
const mapDispatchToProps = {
...Creators,
};
const PostNewContainer = connect(
mapStateToProps,
mapDispatchToProps
)(ProductTable);
export default PostNewContainer;
首先,我将所有产品列表从 Firebase 获取到一个表中,然后我开始执行产品操作,并逐步实现 API、reducer 和 Saga
任何人都了解此案,请您支持我。太感谢了
解决方案
推荐阅读
- sql-server - Docker-compose覆盖不覆盖连接字符串
- javascript - 使用 node.js 运行代码会出错,但没有 node 它可以完美运行
- python - 将扁平层与输入层连接起来
- c# - EF在进行不存在的数据库事务时自动生成外键字段
- linux - 如何获得下一个工作日的号码
- kubernetes - RouteController 未能在 GKE 上创建路由
- flutter - 如何检查 TextFormField 是否聚焦
- scala - Execution of scala Code through command line using spark-submit
- c# - 如何在 ASP.NET Core 中更改元素的背景图像 url
- java - 防止 Java 应用程序执行恶意活动