Почему новые строки не добавляются в ag-grid с помощью vuejs?

У меня есть компонент ag-grid в приложении vue.js, объявленный следующим образом:

<ag-grid-vue :enable-sorting="false"
                                 :enable-filtering="false"
                                 :suppressDragLeaveHidesColumns="true"
                                 :rowData="category.policyDocuments"
                                 :gridOptions="policyGridOptions"
                                 @cellValueChanged="savePolicyRow"
                                 @grid-ready="onPolicyGridReady($event, category)"
                                 class="w-100"
                                 style="height: 200px">
</ag-grid-vue>

Связан с этой моделью представления машинописного текста:

export class PolicyListViewModel {
    status: PolicyDashboardStatus;

    policyLists: DocumentWalletPolicyDocumentList[] = [];

    gridApi: GridApi | null = null;

    policyDocuments: DocumentWalletDocumentViewModel[] = [];

    constructor(status: PolicyDashboardStatus) {
        this.status = status;
    }

    get shouldShow(): boolean {
        return this.policyDocuments.length > 0;
    }

    updateDocuments(): void {
        this.policyDocuments = this.policyLists
            .map(list => list.policyDocuments)
            .reduce((a, b) => a.concat(b), []);
    }
}

Когда моя страница отображается впервые, я получаю правильные данные. Когда я звонюupdateDocumentsс новыми данными сетка не обновляется. Я проверил в vue devtools, чтоrowDataопора обновляется. Документация ag-grid предполагает, что компонент должен реагировать на изменение. Есть идеи, что я делаю неправильно?

2 ответа

пытаться :

       :row-data="Array.from(rowData)"

или

      :row-data="[...rowData]"

Ах-ха. Наконец-то понял это, разместив здесь, если это поможет кому-то еще.

Похоже, моя проблема заключалась в привязке обоих и одновременно. Все работало нормально , за исключением обновления, когда оно было изменено. Я предполагаю, что это потому, что у параметров сетки были свои собственные rowDataсвойство, а оболочка ag-grid использовала данные из одной копии и обнаруживала изменения в другой (или что-то в этом роде).

я заменил gridOptionsсвязывание с columnDefsпривязка (в данном случае единственные параметры, которые мне нужно было установить), и все заработало именно так, как должно.

Другие вопросы по тегам