Нижние колонтитулы AG-Grid в режиме дерева не обновляются - PullRequest
0 голосов
/ 31 октября 2019

При обновлении дерева, использующего нижние колонтитулы в React, ни один из столбцов нижнего колонтитула не обновляется один раз. Чтобы отобразить нижний колонтитул один раз, я могу либо развернуть дерево, либо развернуть строку, чтобы создать строку нижнего колонтитула. После рендеринга значения никогда не меняются даже при свертывании и повторном расширении строки.

Я не уверен, почему это поведение отличается в режимах сетки. После многих ночей сонливости моя текущая рабочая теория состоит в том, что выведенная строка нижнего колонтитула не обновляется или не корректно связана с исходной строкой.

Существует несколько обнаруженных обходных путей / подсказок:

1) deltaRowDataMode = false будет работать как положено. Поскольку мы работаем с реагирующими и неизменяемыми хранилищами, я считаю, что этот режим по-прежнему нужен.

2) Изменение поля идентификатора при обновлении также работает, как и ожидалось. Однако создать полный составной ключ для нашей таблицы, чтобы обнаружить любое изменение, было бы очень сложно, поскольку в худшем случае мы можем иметь до 50 столбцов. Размер ключа также будет огромным.

// пример полного plnkr: https://embed.plnkr.co/Ty1AdL2oQzk9MUqnTHQs/

      <AgGridReact
        columnDefs={this.state.columnDefs}
        rowData={this.state.rowData}
        treeData={true}
        animateRows={true}
        groupDefaultExpanded={this.state.groupDefaultExpanded}
        getDataPath={this.state.getDataPath}
        autoGroupColumnDef={this.state.autoGroupColumnDef}
        onGridReady={this.onGridReady}
        groupIncludeFooter={true}
        groupIncludeTotalFooter={true}
        deltaRowDataMode={true}
        getRowNodeId={data => data.id}
        groupSuppressAutoColumn={true}
      />

Я ожидаю, что значения нижнего колонтитула изменятся при изменении общей строки, включая имя. Использование первого обходного пути (deltaRowDataMode = false) покажет желаемое поведение.

Любое понимание причины проблемы повторного рендеринга будет оценено, или исправление того, что я могу делать неправильно.

...