如何使用参数中的“关键字”进入我的axios请求?我的方法行不通,
//前端代码
const ComprasLista = () => {
const { keyword } = useParams();
const compras = useQuery("compras", ({ keyword = "" }) => {
return axios
.get(`https://582821e.sse.codesandbox.io/api/compras?keyword=${keyword}`)
.then((res) => res.data);
});
//
};
export default ComprasLista;
//后端代码
router.get(
"/",
asyncHandler(async (req, res) => {
const keyword = req.query.keyword
? {
fornecedor: {
$regex: req.query.keyword,
$options: "i"
}
}
: {};
const compras = await Compras.find({ ...keyword });
res.json(compras);
})
);
发布于 2021-12-10 15:39:23
查询的参数应该转到queryKey,然后传递给查询函数:
const fetchCompras = ({ queryKey: [,keyword] }) => {
return axios
.get(`https://582821e.sse.codesandbox.io/api/compras?keyword=${keyword}`)
.then((res) => res.data);
})
const ComprasLista = () => {
const { keyword } = useParams();
const compras = useQuery(["compras", keyword], fetchCompras);
};当然,您也可以对其进行闭包,但重要的是将其放入查询键,以便在关键更改时获得自动重取:
const ComprasLista = () => {
const { keyword } = useParams();
const compras = useQuery(["compras", keyword], () => {
return axios
.get(`https://582821e.sse.codesandbox.io/api/compras?keyword=${keyword}`)
.then((res) => res.data);
})
});
};https://stackoverflow.com/questions/70284309
复制相似问题