reactjs 我想从组件外部运行tanstack react查询,因为我不能在那里使用useQuery,

kq0g1dla  于 2023-01-08  发布在  React
关注(0)|答案(2)|浏览(112)
const getSurvey = useQuery(["survey"], () =>
    getSurveyData({
      page: 1,
      userLangCode: langCode,
      sortColumnName: "Date",
      sortColumnOrder: "DESC",
      country,
      ip,
    })
  );

我试图在某个事件发生后运行查询,但组件加载后它就被调用,并给予我不希望的结果,虽然过了一段时间,当组件得到更新,它只是工作正常。因为我不能被绑定在一个函数。我需要一个方法,我可以从组件外部使用它vut的问题是我不能从外部使用useQuery。

doinxwow

doinxwow1#

您可以使用refetch命令告诉查询开始时禁用,然后手动获取数据:

function SuperAwesomeComponent() {
  const getSurvey = useQuery(["survey"], () =>
    getSurveyData({
      page: 1,
      userLangCode: langCode,
      sortColumnName: "Date",
      sortColumnOrder: "DESC",
      country,
      ip,
    }), {
      enabled: false
    }
  );

  const someEventHandler = () => {
    getSurvey.refresh();
  }

您可以将prop或state变量的值设置为enabled,以便在条件为真时自动运行查询
参见:https://tanstack.com/query/v4/docs/guides/dependent-queries

p8h8hvxi

p8h8hvxi2#

答案是来自coagmano的-只要确保你最终打电话
getSurvey.refetch();而不是getSurvey.refresh();

相关问题