使 react-table 仅在升序和降序之间排序?

Make react-table sort only between ascending and descending order?

React table 排序有 3 个条件,default viewascendingdescending,如他们的官方样本 https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting

所示

现在,我只想将其设置在 ascendingdescending 之间,并删除默认视图。我尝试默认对第一列进行排序

 useTable(
    {
      columns,
      data,
      initialState: {
        pageIndex: 0,
        pageSize: 10,
        sortBy: [
          {
            id: "asset",
            desc: false,
          },
        ],
      },
    },
  )

但是当我单击该列时默认视图仍然存在,我不知道如何删除它。我在他们的文档中也找不到它。

useSortBy documentation提到了调用useTable时可以指定的disableSortRemove选项。

If true, the un-sorted state will not be available to columns once they have been sorted.

对于稍后出现此 React Table 排序问题的任何人,这里有一些更具体的内容。如果单独使用 disableSortRemove: true,第一次点击仍将处于“未排序”状态,随后的点击将按升序或降序排序。这可能不是您想要的 UI,作为一个按钮点击,首先或不,应该做一些事情,但是对于那个变量,第一次点击它不会。

这样您就不必点击排序按钮两次来查看排序,这样做!

const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable(
    {
      columns: tableColumns,
      data: tableData,
      disableSortRemove: true,
      defaultCanSort: true,
      initialState: {
        sortBy: [{ id: tableData[0]?.totalSeries?.totalSeries, desc: true }], //TODO: adjust TableData type file
      },
    },
    useSortBy
  );

这里我们添加了 3 个东西,而不仅仅是一个 disableSortRemove: true。我们添加了:

disableSortRemove: true, defaultCanSort: true, 和 initialState: { sortBy: [{ id: tableData[0]?.totalSeries?.totalSeries, desc: true }] // 重要:在这里使用你自己的数据形状 },

我认为您不需要第二个 (defaultCanSort: true),但是第一个和第三个可以达到您想要的效果:在页面加载时,排序打开,一旦您单击排序按钮,它就会排序相反的方式。

完成。已排序。