具有功能组件的Ag-grid自定义工具提示

时间:2020-02-15 00:35:15

标签: reactjs ag-grid ag-grid-react

我正在看ag-Grid创建自定义工具提示的示例。

import React, {Component} from 'react';

export default class CustomTooltip extends Component {
    getReactContainerClasses() {
        return ['custom-tooltip'];
    }

    render() {
        const data = this.props.api.getDisplayedRowAtIndex(this.props.rowIndex).data;
        return (
            <div className="custom-tooltip" style={{backgroundColor: this.props.color || 'white'}}>
                <p><span>{data.athlete}</span></p>
                <p><span>Country: </span> {data.country}</p>
                <p><span>Total: </span> {data.total}</p>
            </div>
        );
    }
}

根据ag-Grid的react组件页面,“如果您希望覆盖此div的样式,则可以提供ag-react-container类的实现,也可以通过React组件上的getReactContainerStyle或getReactContainerClasses回调: “

如何使用功能组件创建自定义工具提示?我不确定如何提供getReactContainerClasses回调的实现。

1 个答案:

答案 0 :(得分:1)

您将无法在功能组件中拥有公共功能getReactContainerClasses,您需要编写一个类组件。如果要编写功能组件,则只需直接在容器DOM元素上设置CSS类即可,类似于其原始JS示例。下面是一个实用的工具提示示例,它设置了类custom-tooltip

import React, {Component} from 'react';

export const FunctionalCustomTooltip = (props) => {
    props.reactContainer.classList.add('custom-tooltip');

    const data = props.api.getDisplayedRowAtIndex(props.rowIndex).data;
    return (
        <div className="custom-tooltip" style={{backgroundColor: props.color || 'white'}}>
            <p><span>{data.athlete}</span></p>
            <p><span>Country: </span> {data.country}</p>
            <p><span>Total: </span> {data.total}</p>
        </div>
    );
};

完整的工作示例: https://plnkr.co/edit/WHEgtw0YVia1BVP4SVO8?p=preview