Как использовать gridOptions с хуками useState - PullRequest
0 голосов
/ 27 сентября 2019

Использование React 16.9.0 и ag-grid-реаги и сообщества 21.2.1: я пытаюсь использовать gridOptions вместо указания атрибутов на самой сетке, но если я использую gridOptions, мой компонент не будет повторно отображаться при включениииз сеттеров называется.noRowsSelected используется для отключения кнопок при значении true.Таким образом, только если флажок в строке установлен, noRowsSelected должно быть ложным, и кнопки не будут отключены.

Этот код работает.

const [noRowsSelected, setNoRowsSelected] = useState(true);

const columnDefs = [
    {
      checkboxSelection: true,
      headerCheckboxSelection: true,
      headerCheckboxSelectionFilteredOnly: true,
      suppressMovable: true,
      suppressFilter: true,
      suppressSorting: true,
      width: 50
    }
]

return(
  <AgGridReact 
    .
    .
    .
    onSelectionChanged={params => {
        if (noRowsSelected){
            setNoRowsSelected(false);
        } else if (!params.api.getSelectedNodes().length){
            setNoRowsSelected(true);
        }
    }}
    .
    .
    . />
)

Но этот код не-отобразить мой компонент:

const gridOptions = {
        .
        .
        .
        onSelectionChanged(params) {
            if (noRowsSelected){
                setNoRowsSelected(false);
            } else if (!params.api.getSelectedNodes().length){
               setNoRowsSelected(true);
            }
        },
        .
        .
        .
    }
return(
    <AgGridReact gridOptions={gridOptions} />
)

Приведенный выше код меняет мои кнопки с отключенных, когда установлен первый флажок (повторно отображает мой компонент, потому что мой useEffect вызывается).Но любые проверки или новые проверки не выполняются повторно.

Я знаю, что ag-grid создает свой собственный компонент, и я думаю, что gridOptions просто не дает вам возможности обновлять другие компоненты с помощью функций.

...