如何在render()

时间:2019-07-10 07:51:08

标签: javascript reactjs devexpress

我有带有原理图代码的React组件:

class OrderList extends Component {
    constructor() {
        super();
        this.handleUpdate = this.handleUpdate.bind(this);
    }

    handleChange(event) {
        //>>POI how to get reference to the Grid, that is defined in the component tree?
        //grid.forceUpdate();
    }


    render() {
        return (
            <div>
                <Grid data={this.props.orders}>
                <button onClick={this.handleUpdate}>Update</button>
            </div>  
            );
    }
}

<Grid>是一些复杂的React组件,例如https://devexpress.github.io/devextreme-reactive/react/grid/https://www.ag-grid.com/react-getting-started/,其出现取决于某些状态变量。如果更新<Grid>,则会自动重新渲染this.props.orders(例如,更新其最终的,通过React计算的样式)。但是我有this.state.selectedOrderNo变量,它不属于this.props.orders(当然,这是2个不同的变量-道具数组和状态标量),并且Grid具有一些取决于{{1 }},但仅在重新渲染this.state.selectedOrderNo时才计算/渲染这些样式规则(但当<Grid>更改时,不会发生这种重新渲染,因为这些样式规则是比的直接参数更深的选项) this.state.selectedOrderNo),但我想在更改<Grid>时开始重新渲染网格。因此,这就是为什么我要致电this.state.selectedOrderNo的原因。但是问题是-如何获得grid.forceUpdate()的参考grid

1 个答案:

答案 0 :(得分:1)

您需要在Grid中使用$state.go('target.state', params, {inherit: false}); 才能使其正常工作

ref

希望有帮助