如何在 react table v7 中创建数字范围过滤器?这是我的相关列定义和过滤功能。
// The Filter function
import { Box, Input } from '@mui/material';
const NumberFilter = ({ column, data }) => {
const { filterValue = [], setFilter } = column;
console.log('filterValue: ' + filterValue);
return (
<Box sx={{ display: 'flex', justifyContent: 'space-between' }}>
<Input
placeholder="Min"
value={filterValue[0] || ''}
type="number"
onChange={(e) => {
setFilter([e.target.value || undefined, filterValue[1]]);
}}
/>
<Input
placeholder="Max"
value={filterValue[1] || ''}
type="number"
onChange={(e) => {
setFilter([filterValue[0], e.target.value || undefined]);
}}
/>{' '}
</Box>
);
};
export default NumberFilter;
// The column definition...
{
Header: 'Pant Size',
accessor: 'pant-size',
Filter: NumberFilter,
filter: 'isNumberRange',
filterValue: [0, 10],
Cell: ({ value}) => value);
}
这行不通。该列似乎没有过滤值在最小值和最大值范围内的所有行,而是在进行文本匹配,这是默认设置。
我认为我的问题是过滤器参数有多种选择。例如,“文本”和“精确”。我在某处读到有一个数字范围选项,它是“isNumberRange”。这显然是不正确的。还有其他选择吗?有谁知道这个文档在哪里?
根据filterTypes源码,默认支持的filterType列表有:
value.includes(filterValue)
返回)filterValue.includes(value)
)对于这个用例,'between' filterType 是最合适的。