ReactJs Material-Table 如何显示/隐藏过滤选项

问题描述 投票:0回答:3

我正在为我的reactJS应用程序使用material-Table插件来显示数据表。

我需要在列上显示过滤。但是,当我启用“filtering=true”时,它会在标题下方的“标题”部分中再创建一行。这占用了不必要的空间并且总是显示。

我想隐藏过滤器部分。也许我在列旁边显示过滤器图标,单击时它会显示过滤文本行。我看到这个选项在管状反应表上。但我可以用材料表来做吗?

reactjs material-table
3个回答
2
投票

它不支持开箱即用,但如果您将过滤状态保存在 useState 中并将其设置为 true 更新表,如下所示:

function Table(){
    const [filtering, setFiltering] = React.useState(false);
    retrun <div>
           <MaterialTable options={{filtering}}/>
           <button onClick={() => {setFiltering(currentFilter => !currentFilter)}}>Show Filtering</button>
          </div>
}

1
投票

所以解决方案如下所示。 (我正在使用类)

在材质表中,需要添加一个过滤按钮。这将切换过滤器部分。 还要添加 options={{Filtering: this.state.filter}}。我们还需要定义一个小函数来切换标志。

options={{Filtering: this.state.filter}   
 actions={[
               {
                 icon: 'filter',
                 tooltip: 'Enable Filter',
                 isFreeAction: true,
                 onClick: (event) => { this.functionName(!this.state.filter)}
                                  }
                                ]}

0
投票

如何默认禁用列的过滤器并在其悬停时启用它?我可以通过将enableColumnFilter设置为false来禁用它,当它悬停时如何启用它?

© www.soinside.com 2019 - 2024. All rights reserved.