reactjs - React 数据网格过滤器默认启用(并打开)

标签 reactjs react-data-grid

有没有办法让过滤器在 React Data Grid 中默认打开(显示)?最好是一个能让我避免传入 toolbar={<Toolbar enableFilter />} 的支持 <ReactDataGrid />

通读 Adazzle component docs似乎没有明显的 Prop 可以传递给主要<ReactDataGrid />无需调用即可显示过滤器的组件 onToggleFilter()通过 <Toolbar />零件。

我正在构建的最终网格组件将使用用户立即可见和可编辑的过滤器输入呈现,无需“点击清除”或以其他方式调用记录的 onClearFilters()功能。这也使得 <Toolbar />组件(和嵌套的 <Filter Rows /> 按钮是不必要的。

我当前的组件是...

<ReactDataGrid
   onGridSort={this.handleGridSort}
   columns={this.state.columns}
   rowGetter={this.rowGetter}
   rowsCount={this.getSize()}
   toolbar={<Toolbar enableFilter />}
   onAddFilter={this.handleFilterChange}
   onClearFilters={this.onClearFilters}
/>

理想情况下最终组件看起来像这样......

<ReactDataGrid
  onGridSort={this.handleGridSort}
  columns={this.state.columns}
  rowGetter={this.rowGetter}
  rowsCount={this.getSize()}}
  onAddFilter={this.handleFilterChange}
  filtersVisible={true}  // Renders with filters visible/active
/>

最佳答案

你是对的,似乎没有内置的方法可以自动打开工具栏和过滤器,但是一个相当简单的解决方法是

 componentDidMount(){
    this.myOpenGrid.onToggleFilter();
  }

然后向您的网格添加一个引用,以便它的过滤器在挂载时立即打开

<ReactDataGrid
   ref={(datagrid) => { this.myOpenGrid = datagrid; }}
   // all other set up
/>

关于reactjs - React 数据网格过滤器默认启用(并打开),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45112777/

相关文章:

javascript - 即使我传递相同的引用,React useState 也会重新渲染?

javascript - 在组件上 react 数据网格过滤器

javascript - React 数据网格自定义编辑器与语义 ui 日历日期选择器(dateinput)一起工作

javascript - React-data-grid - 使用全局变量更改单元格值

reactjs - React-data-grid:创建基于另一列的列

api - 在没有 Redux 的情况下难以在 REACTjs 中执行 GET 请求

reactjs - 从多个后端加载翻译

ajax - 在 React : How do I Map through JSON array of objects, setState() 中获取请求并追加?

reactjs - 如何使用 Prop 更新polygonOptions的fillColor?