6

ほとんどの列で ​​React の cellRenderer を使用したいと考えています。したがって、私の colDefs には、unit という追加のフィールドがあります。ユニットが存在する場合、TableCell React コンポーネントで処理されるカラー グリッドのような heatMap を使用しようとしています。この同一の反応コンポーネントは、ZippyUI などの他のデータ グリッドで機能しています。cellRenderer 関数は、仮想 DOM オブジェクトである React コンポーネントを返すことができますか、それとも真の HTML DOM オブジェクトである必要がありますか? ag-Grid の cellRenderer コンポーネント メソッドでこのようなことを行うのが望ましいでしょうか?

colDefs.map((x) => {
    if (x.hasOwnProperty('unit')) {
        x.cellRenderer = (params) => {
            return <TableCell value={params.value} units={x.unit} min={min[x.field]} max={max[x.field]} colorScheme={colorScheme} />;
        };
    }
});
4

3 に答える 3

3

必要な実装を理解したので、この質問は将来のユーザーのために残しておきます。コンポーネント アプローチが必要なようで、cellRendererParms を使用して追加の引数を渡すことができます。次に、実際のレンダラー (以下の ReactTableCellRenderer) 内で、 this.props.params.units を介してそれらにアクセスできます (または、ユニットをオブジェクトに渡す他のパラメーターに置き換えます)。

 colDefs.map((x) => {
        if (x.hasOwnProperty('unit')) {
            x.cellRenderer = reactCellRendererFactory(ReactTableCellRenderer);
            x.cellRendererParams = {units: x.unit, min: min[x.field], max: max[x.field], colorScheme: colorScheme};
        }
    });

cellRendererParams を介して渡されたパラメーターは、R​​eact コンポーネント (私の場合は ReactTableCellRenderer) 内で this.props.params.units (またはユニットの適切な変数名に置き換えます) を介して使用できます。

于 2016-08-29T23:22:08.643 に答える