React backpress 在屏幕上打印 axios 响应
React backpress prints axios response on the screen
我创建了一个 React 应用程序,它运行良好,但问题是,当我单击后退按钮时,屏幕变白并打印 axios get 或 post 请求的响应。
这是我的使用效果:
useEffect(() => {
async function loadIBooks() {
const response = await axios.get(
`/Bookss?_type=${BooksType}&_page=${page}`
);
setBookss(response.data.data);
if (response.data.data.length === 0) {
setNoBookss(true);
} else setNoBookss(false);
setLoading(false);
}
loadBookss();
}, [page, BooksType]);
这是我的路线数据:
router.get("/books", async (req, res) => {
const allbooks = await bookSchema
.find({
status: "Published",
bookType: req.query._type,
})
.sort({ _id: -1 });
res.json({
data: allbooks,
status: res.status,
});
});
它首先正确显示数据,但是当我转到下一页并返回时,它会打印 axios 响应。
我通过在 server.js
中添加静态部分解决了这个问题
if (process.env.NODE_ENV == "production") {
app.use(express.static("./client/build"));
const path = require("path");
app.get("*", (req, res) => {
res.sendFile(path.resolve(__dirname, "client", "build", "index.html"));
});
}
我创建了一个 React 应用程序,它运行良好,但问题是,当我单击后退按钮时,屏幕变白并打印 axios get 或 post 请求的响应。
这是我的使用效果:
useEffect(() => {
async function loadIBooks() {
const response = await axios.get(
`/Bookss?_type=${BooksType}&_page=${page}`
);
setBookss(response.data.data);
if (response.data.data.length === 0) {
setNoBookss(true);
} else setNoBookss(false);
setLoading(false);
}
loadBookss();
}, [page, BooksType]);
这是我的路线数据:
router.get("/books", async (req, res) => {
const allbooks = await bookSchema
.find({
status: "Published",
bookType: req.query._type,
})
.sort({ _id: -1 });
res.json({
data: allbooks,
status: res.status,
});
});
它首先正确显示数据,但是当我转到下一页并返回时,它会打印 axios 响应。
我通过在 server.js
中添加静态部分解决了这个问题if (process.env.NODE_ENV == "production") {
app.use(express.static("./client/build"));
const path = require("path");
app.get("*", (req, res) => {
res.sendFile(path.resolve(__dirname, "client", "build", "index.html"));
});
}