如何重置React Table中的过滤器字段?

Ang*_*nca 6 reactjs react-table

是否有指令在某个时刻重置滤波器字段?要过滤任何列,可以在onFetchDataAjax调用中正常调用以过滤数据.但是在信息过滤后我需要的一些动作,重新渲染表格.在我的类中的另一个函数中,我执行:

this.setState({
   filter: []
});
Run Code Online (Sandbox Code Playgroud)

但更新表后更新的信息仍在字段中.

<ReactTable
    data={this.state.data}
    loading={this.state.loading}
    pages={this.state.pages}
    filterable
    columns={[
        {
            Header: "First Name",
            id: "firstName",
            accessor: d => d.firstName,
            Filter: ({ filter, onChange }) => (
                <input className="form-control input-sm"  onChange={event => onChange(event.target.value)} value={filter ? filter.value : ''} />
            )
        },
        {
            Header: "Last Name",
            accessor: "lastName",
            Filter: ({ filter, onChange }) => (
                <input className="form-control input-sm"  onChange={event => onChange(event.target.value)} value={filter ? filter.value : ''} />
            )
        }
    ]}
    onFilteredChange={(column, value) => {
        //Code
    }}
    onFetchData={(state, instance) => {
        //Ajax call
    }}
    defaultPageSize={10}
    className="-striped -highlight"
    manual
/>
Run Code Online (Sandbox Code Playgroud)

Bor*_*s K 8

看看这个:

1)当您启动父组件时,将其设置为有状态并为其提供带有空数组的"已过滤"属性,如下所示:

constructor() {
    super();
    this.state = {
        filtered: []
    };
}
Run Code Online (Sandbox Code Playgroud)

2)设置React Table组件时,将其"filtered"属性连接到state,如下所示:

filtered={this.state.filtered}
Run Code Online (Sandbox Code Playgroud)

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

onFilteredChange={filtered => {this.setState({ filtered });}}
Run Code Online (Sandbox Code Playgroud)

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

onClick={()=>this.setState({ filtered: [] })}>
Run Code Online (Sandbox Code Playgroud)

容易,还是什么?