ReactJsMaterial-Tableフィルターオプションを表示/非表示にする方法

Aug 21 2020

私はreactJSアプリケーションにmaterial-Tableプラグインを使用して、データのテーブルを表示しています。

列にフィルタリングを表示する必要があります。しかし、filtering = trueを有効にすると、見出しの下のヘッダーセクションにもう1つの行が作成されます。これは不必要なスペースを取り、常に表示されます。

フィルタセクションを非表示にします。たぶん、列の横にフィルターアイコンを表示し、クリックするとフィルタリングテキスト行が表示されます。私はこのオプションが管状反応テーブルにあるのを見ました。しかし、私は材料テーブルで行うことができますか?

回答

2 Domino987 Aug 31 2020 at 02:05

そのままではサポートされていませんが、フィルタリング状態を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 AmitG Sep 01 2020 at 05:37

したがって、解決策は以下のようになりました。(私はクラスを使用しています)

Material-tableで、フィルター用のボタンを追加する必要があります。フィルタセクションを切り替えます。また、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)}
                                  }
                                ]}