具有功能组件的 Ag-grid 自定义工具提示
Ag-grid custom tooltip with functional component
我正在查看 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组件页面,"If you wish to override the style of this div you can either provide an implementation of the ag-react-container class, or via the getReactContainerStyle or getReactContainerClasses callbacks on the React component:"
我将如何使用功能组件创建自定义工具提示?我不确定如何提供 getReactContainerClasses 回调的实现。
您将无法在功能组件中拥有 public 功能 getReactContainerClasses
,您需要编写一个 class 组件。如果你想写一个功能组件,直接在容器 DOM 元素上设置 CSS class ,类似于他们的 vanilla JS 示例。下面是一个功能性工具提示示例,它设置了 class 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
您可以使用带有 useImperativeHandle 挂钩的 React Hooks public 函数。
export const Component = forwardRef((props: ComponentParams, ref: any) => {
useImperativeHandle(ref, () => {
return {
getReactContainerClasses() {
return ['grid-container'];
},
};
});
}
我正在查看 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组件页面,"If you wish to override the style of this div you can either provide an implementation of the ag-react-container class, or via the getReactContainerStyle or getReactContainerClasses callbacks on the React component:"
我将如何使用功能组件创建自定义工具提示?我不确定如何提供 getReactContainerClasses 回调的实现。
您将无法在功能组件中拥有 public 功能 getReactContainerClasses
,您需要编写一个 class 组件。如果你想写一个功能组件,直接在容器 DOM 元素上设置 CSS class ,类似于他们的 vanilla JS 示例。下面是一个功能性工具提示示例,它设置了 class 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
您可以使用带有 useImperativeHandle 挂钩的 React Hooks public 函数。
export const Component = forwardRef((props: ComponentParams, ref: any) => {
useImperativeHandle(ref, () => {
return {
getReactContainerClasses() {
return ['grid-container'];
},
};
});
}