diff --git a/packages/dx-react-grid/src/plugins/table-tree-column.test.tsx b/packages/dx-react-grid/src/plugins/table-tree-column.test.tsx index eae848c7fc..5f0deb8e6d 100644 --- a/packages/dx-react-grid/src/plugins/table-tree-column.test.tsx +++ b/packages/dx-react-grid/src/plugins/table-tree-column.test.tsx @@ -224,4 +224,50 @@ describe('TableTreeColumn', () => { value: defaultDeps.template.tableCell.tableRow.row.value, }); }); + + it('should change "for" property in runtime', () => { + class Test extends React.Component { + constructor(props) { + super(props); + this.state = { + columnName: props.columnName, + }; + } + + render() { + const { columnName } = this.state; + isTreeTableCell.mockImplementation((_, tableColumn) => ( + tableColumn.column.name === columnName + )); + + return( + + {pluginDepsToComponents(defaultDeps)} + + + ); + } + } + + const tree = mount(( + + )); + + expect(tree.find(defaultProps.cellComponent).exists()) + .toBeFalsy(); + + tree.setState({ + columnName: 'a', + }); + + expect(tree.find(defaultProps.cellComponent).exists()) + .toBeTruthy(); + expect(tree.find(defaultProps.cellComponent).props().column.name) + .toEqual('a'); + }); }); diff --git a/packages/dx-react-grid/src/plugins/table-tree-column.tsx b/packages/dx-react-grid/src/plugins/table-tree-column.tsx index 981cb40ba7..5633c19b33 100644 --- a/packages/dx-react-grid/src/plugins/table-tree-column.tsx +++ b/packages/dx-react-grid/src/plugins/table-tree-column.tsx @@ -40,6 +40,7 @@ class TableTreeColumnBase extends React.PureComponent { { name: 'Table' }, { name: 'TableHeaderRow', optional: true }, ]} + key={forColumnName} >