Может быть невозможно обойтись без кастомного formatter
Что касается накладных расходов, проверьте реализацию, в которой используется SimpleCellFormatter
https://github.com/adazzle/react-data-grid/blob/master/packages/react-data-grid/src/formatters/SimpleCellFormatter.js, ничего особенного не происходиттам
class SimpleCellFormatter extends React.Component {
static propTypes = {
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object, PropTypes.bool])
};
shouldComponentUpdate(nextProps) {
return nextProps.value !== this.props.value;
}
render() {
return <div title={this.props.value}>{this.props.value}</div>;
}
}
У вас должен быть ваш пользовательский форматер (такой же, как и выше, за исключением атрибута title
):
class CustomSimpleCellFormatter extends React.Component {
static propTypes = {
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object, PropTypes.bool])
};
shouldComponentUpdate(nextProps) {
return nextProps.value !== this.props.value;
}
render() {
return <div >{this.props.value}</div>;
}
}
И он прикреплен к вашему columns
const columns = [
{
key: "id",
name: "ID",
sortDescendingFirst: true
},
{
key: "title",
name: "Title",
title: false
},
{
key: "firstName",
name: "First Name",
formatter: CustomSimpleCellFormatter,
},
...
Надеюсь, это поможет.