#reactjs #ag-grid #ag-grid-react
Вопрос:
Я пытаюсь реализовать пользовательский фильтр и следил за множеством учебных пособий, но всегда оказываюсь заблокированным в doesFilterPass. Похоже, это вообще не срабатывает, и я не уверен, почему, так как нет предупреждения или сообщения об ошибке. Вот код.
Все остальное, например, isFilterActive или this.props.filterChangedCallback(); работает
Я использую gridOptions frameworkКомпоненты для регистрации.
frameworkComponents:{ tqFilter : TQFilter, },
Является ли это простым флажком, который запускает проверку по сравнению с другим столбцом.
import React, {Component} from "react"; import ReactDOM from "react-dom"; export default class TQFilter extends Component { constructor(props) { super(props); console.log('The field for this filter is ' props.colDef.field); this.state = { checked : false }; this.valueGetter = this.props.valueGetter; this.onChange = this.onChange.bind(this); } isFilterActive() { return this.state.checked !== null amp;amp; this.state.checked !== undefined amp;amp; this.state.checked !== false; } doesFilterPass(params) { console.log('This does not work?'); return this.valueGetter(params.node).toString().toUpperCase(); } onChange(event) { let newValue = event.target.checked; if(this.state.checked !== newValue) { this.setState({ checked: newValue }, () =gt; {this.props.filterChangedCallback(); }); } } render() { let style = { border: "2px solid #22ff22", borderRadius: "5px", backgroundColor: "#bbffbb", width: "200px", height: "50px" }; return ( lt;div style={style}gt;Filter: lt;input type="checkbox" onChange={this.onChange} className="form-control"/gt;lt;/divgt; ); } }
Спасибо!