如何更改 Ag Grid React 中的上下文

How to change context in Ag Grid React

我正在尝试使用 documentation 为我的 React Ag Grid 应用程序添加上下文。我的问题是他们的代码示例没有使用我创建网格的方式。这就是他们添加上下文的方式

var gridOptions = {
    columnDefs: columnDefs,
    defaultColDef: {
        flex: 1,
        resizable: true
    },
    rowData: rowData,
    context: {
        reportingCurrency: 'EUR'
    },
};

// setup the grid after the page has finished loading
document.addEventListener('DOMContentLoaded', function() {
    var gridDiv = document.querySelector('#myGrid');
    new agGrid.Grid(gridDiv, gridOptions);
});

然后他们像这样更改上下文值

function currencyChanged() {
    var value = document.getElementById('currency').value;
    gridOptions.context = {reportingCurrency: value};
    gridOptions.api.refreshCells();
    gridOptions.api.refreshHeader();
}

虽然我使用的是 React,所以我正在像这样创建我的组件

const [gridParams, setGridParams] = useState(null);

const onFirstDataRendered = (params) => {
  setGridParams(params)
}

<AgGridReact
  columnDefs={columnDefs}
  defaultColDef={{
        flex: 1,
        resizable: true
  }}
  rowData={rowData}
  context={{ reportingCurrency: 'EUR' }}
  onFirstDataRendered={onFirstDataRendered}
>

这就是我在文件中更改上下文的方式

const currencyChange = (value) => {
     gridParams.context = { reportingCurrency: value };
     gridParams.api.refreshCells();
};

当我像这样更新上下文时,我的单元格看不到它们的上下文已更改。由于文档没有显示如何为 React 实现它,我想我只是遗漏了一些东西。有人知道那是什么吗?

貌似换上下文的方式其实不一样。摸索了一下,好像需要改成这样

const currencyChange = (value) => {
     gridParams.api.gridOptionsWrapper.gridOptions.context = { reportingCurrency: value };
     gridParams.api.refreshCells();
};