Отключить кнопку, если в Ag-Grid React нет строк - PullRequest
0 голосов
/ 16 июня 2020

Я новичок в Ag-Grid React и пытаюсь использовать его для отображения данных пользователю. У меня есть несколько кнопок, связанных с сеткой, которые будут выбирать / отменять выбор всех строк или удалять любые выбранные строки. Если в сетке нет строк, эти кнопки следует отключить. Я использовал функцию api.getRenderedNodes (), чтобы увидеть, содержит ли сетка какие-либо узлы. Вот соответствующий код:

// Component Constructor
constructor(props) {
    super(props);
    this.disabled = true;
}
//Component Did Update, where I run the check for nodes
componentDidUpdate(prevProps, prevState) {
    if (this.gridApi) { //make sure the grid is ready first
      console.log(this.gridApi.getRenderedNodes());
      this.disabled = _.isEmpty(this.gridApi.getRenderedNodes());
    }
}
//my buttons look like the following
<button onClick={ this.clickFunction } disabled={ this.disabled } >Button Text</button>

Проблема, с которой я столкнулся (независимо от того, где я поставил проверку для getRenderedNodes ()), заключается в том, что я всегда кажусь одним render () позади. Если я загружаю страницу, а сетка содержит строку, кнопки будут отключены до тех пор, пока я не выполню какое-либо действие на странице, которое вызовет повторный рендеринг (даже если журнал getRenderedNodes () показывает, что он успешно получил строку, прежде чем я выполню указанное действие). Если я удалю единственную строку в сетке, кнопки не отключатся, пока я не выполню другое действие, потому что функция getRenderedNodes () по какой-то причине по-прежнему возвращает результат с этим удаленным узлом, даже если он не отображается в сетке. Другая кнопка и функциональность сетки работают так, как задумано, поэтому мне кажется, что проблема l ie в моем отключении logi c здесь, но я не могу понять, как исправить. Будем признательны за любые советы.

...