useTableFilterState
@astryxdesign/core v0.7.1 · useTableFilterState
使用方法
管表格过滤状态。它交出当前的过滤映射、一个改值的处理函数,还有一个清空的办法。把映射和处理函数交给 useTableFiltering,把映射交给 applyTableFilters() 就能拿到匹配的行。
ts
import { useTableFilterState } from '@astryx-vue/core/Table'一条过滤「关掉」的意思是它的 key 不在映射里。写 null、空字符串或空数组时,key 会被删掉,而不是存一个空值,所以映射里还留着的 key 一定是生效的过滤。
需要打开页面就带着过滤时,给一个初始映射。可以直接把映射传进去,也可以写成 initialState。初始对象是浅拷贝的,后面怎么写都不会改到你传进去的那份。
ts
const direct = useTableFilterState({ role: 'Engineer' })
const wrapped = useTableFilterState({ initialState: { role: 'Engineer' } })示例
Table — 行内过滤
Name | Email | Role | Department |
|---|---|---|---|
| Alice Johnson | alice@example.com | Engineer | Platform |
| Bob Smith | bob@example.com | Designer | Product |
| Charlie Brown | charlie@example.com | Manager | Platform |
| Diana Prince | diana@example.com | Engineer | Infra |
| Eve Davis | eve@example.com | Admin | Operations |
行内过滤控件,过滤映射由 useTableFilterState 保存。
Table — 弹出过滤
Name | Email | Role | Department |
|---|---|---|---|
| Alice | alice@example.com | Engineer | Platform |
| Bob | bob@example.com | Designer | Product |
| Charlie | charlie@example.com | Manager | Platform |
| Diana | diana@example.com | Engineer | Infrastructure |
| Eve | eve@example.com | Admin | Operations |
弹出层里的过滤控件,用的是同一份受管状态。