如何应用 React Table initialState.filters
How can apply React Table initialState.filters
我正在尝试根据传递给 useTable 的默认值过滤 React table。所以,我已经将包含 id 和值的 json 数组传递给 useTable,但它没有在 table 中应用。其实InitialState.filters只是第一次生效,改了filterData之后就没有生效了
const {
.....
preGlobalFilteredRows,
setGlobalFilter,
setAllFilters,
state: { pageIndex, pageSize, globalFilter },
} = useTable(
{
columns,
data,
defaultColumn,
...
autoResetSelectedRows: !skipReset,
disableMultiSort: true,
**initialState: {
pageSize: 10,
filters: filterData,
},**
},
useFilters,
useGroupBy,
useGlobalFilter,
useSortBy,
....,
);
filterData = [{id: "empId", value: "332697"}]
但它不适用于渲染后的 table 。是否需要进行其他更改才能应用默认过滤?
我可以弄清楚如何在更改 filterData 后过滤 table。
首先,注意到 initialState.filters 只是在第一次渲染 table 时起作用。
其次,我不得不使用 setAllFilter 来应用我的自定义过滤器
useEffect(() => {
if (filterData?.length > 0) {
setAllFilters(filterData);
}
}, [filterData, setAllFilters]);
我正在尝试根据传递给 useTable 的默认值过滤 React table。所以,我已经将包含 id 和值的 json 数组传递给 useTable,但它没有在 table 中应用。其实InitialState.filters只是第一次生效,改了filterData之后就没有生效了
const {
.....
preGlobalFilteredRows,
setGlobalFilter,
setAllFilters,
state: { pageIndex, pageSize, globalFilter },
} = useTable(
{
columns,
data,
defaultColumn,
...
autoResetSelectedRows: !skipReset,
disableMultiSort: true,
**initialState: {
pageSize: 10,
filters: filterData,
},**
},
useFilters,
useGroupBy,
useGlobalFilter,
useSortBy,
....,
);
filterData = [{id: "empId", value: "332697"}] 但它不适用于渲染后的 table 。是否需要进行其他更改才能应用默认过滤?
我可以弄清楚如何在更改 filterData 后过滤 table。 首先,注意到 initialState.filters 只是在第一次渲染 table 时起作用。 其次,我不得不使用 setAllFilter 来应用我的自定义过滤器
useEffect(() => {
if (filterData?.length > 0) {
setAllFilters(filterData);
}
}, [filterData, setAllFilters]);