首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用React查询将关键字搜索到api中

如何使用React查询将关键字搜索到api中
EN

Stack Overflow用户
提问于 2021-12-09 03:16:47
回答 1查看 331关注 0票数 0

如何使用参数中的“关键字”进入我的axios请求?我的方法行不通,

//前端代码

代码语言:javascript
复制
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;

//后端代码

代码语言:javascript
复制
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);
  })
);

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-10 15:39:23

查询的参数应该转到queryKey,然后传递给查询函数:

代码语言:javascript
复制
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);
 
};

当然,您也可以对其进行闭包,但重要的是将其放入查询键,以便在关键更改时获得自动重取:

代码语言:javascript
复制
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);
    })
  });
 
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70284309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档