首页 > 解决方案 > 在 relay.refetch 之后 UI 没有改变

问题描述

我正在尝试实现简单的分页(不是基于光标的)并使用不同的参数重新获取数据。数据是从服务器获取的,但 UI 没有改变。

const tableQuery = graphql`
  query TableDataRefetchQuery(
    $page: Int
    $startDate: Date!
    $endDate: Date!
  ) {
    data(
      startDate: $startDate
      endDate: $endDate
      page: $page
    ) {
      ...Table_data
        @arguments(
          startDate: $startDate
          endDate: $endDate
          page: $page
        )
    }
  }
`;

这是容器:

const Container = createRefetchContainer(
  Table,
  {
    data: graphql`
      fragment Table_data on Data
      @argumentDefinitions(
        startDate: { type: "Date!" }
        endDate: { type: "Date!" }
        page: { type: "Int", defaultValue: 1 }
      ) {
        collection {
          id
          state
          date
          ...
        }
        currentPage
        totalPages
      }
    `,
  },
  tableQuery
);

这是我重新获取数据的方法:

  const handlePageClick = ({ selected }) => {
    const newPage = selected + 1;
    relay.refetch({ page: newPage }, null, () => console.log('Refetch done'));
  };

知道我在做什么错吗?

标签: graphqlrelayrelaymodern

解决方案


推荐阅读