reactjs - react 表 : resetting filters programmatically

标签 reactjs react-table

我正在使用 React-Table 6.7.6,并希望以编程方式重置所有过滤器。

现在,我有这段代码:

return (
    <div>
        <ReactTable
            className="-striped -highlight"
            data={data}
            columns={columns}
            filterable={true}
            defaultFilterMethod={(filter, row, column) => {
                const id = filter.pivotId || filter.id;
                return row[id] !== undefined
                    ? String(row[id]).includes(filter.value)
                    : true;
            }}
        />
    </div>
);

有没有一种方法可以在不深入研究这个东西的内部的情况下重置过滤器值?

最佳答案

明白了。

1) 当你启动你的父组件时,让它有状态并给它一个带有空数组的'filtered'属性,就像这样:

constructor() {
    super();
    this.state = {
        filtered: []
    };
}

2) 当您设置 React Table 组件时,将其“过滤”属性连接到状态,如下所示:

filtered={this.state.filtered}

3) 将过滤连接到状态,如下所示:

onFilteredChange={filtered => {this.setState({ filtered });}}

4) 使用像这样的 onClick 方法连接一个按钮或任何你想重置过滤器的东西:

onClick={()=>this.setState({ filtered: [] })}>

关于reactjs - react 表 : resetting filters programmatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48079820/

相关文章:

javascript - TypeError : Object(. ..) 不是 React Table 和 moment.js 的函数

reactjs - 为什么我应该在react-table中使用cell.render ("Cell")而不是cell.value?

reactjs - React 调用动态状态名称

reactjs - React Table 默认分页页面

javascript - 在 react-table 中,我结合了基本的排序和调整大小示例,但想在调整列大小时抑制排序

node.js - 在本地主机中登录但在 Heroku 中部署时出现错误 "secret option required for sessions"

javascript - 单击按钮后如何显示我在文本输入字段中写的内容?

reactjs - react native : Unable to resolve "@ant-design/icons-react-native/fonts/antoutline.ttf"

javascript - react 路由器中的层次结构