我使用调度程序,如下所示:
从下拉列表(react-select)中,我选择一个名称(我必须在调度程序上显示其事件),它将正确显示,
nextState.showData是一个数据数组。
window.scheduler.parse(nextState.showData, 'json')但是,当我取消选择相同的名称时,计划程序应该会更新,并且不会向我显示任何事件,但计划程序不会更新(仍然会显示现在已取消选择的名称的事件)
尽管在取消选择名称时,nextState.showData=[]
请帮帮忙。我正在使用带有React的dhtmlx-scheduler .
发布于 2020-03-30 04:53:41
这就是我解决问题的方法
componentDidUpdate(prevProps) {
if(this.props.showData.length===0) {
window.scheduler.clearAll();
window.scheduler.parse([], 'json')
}
else {
window.scheduler.clearAll();
window.scheduler.parse(this.props.showData, 'json')
}
}我没有在shouldComponentUpdate()中解析数据,而是在componentDidUpdate()中解析数据,它解决了我的问题
礼遇https://forum.dhtmlx.com/t/gantt-not-re-rendering-after-update/37702/2
发布于 2020-03-30 19:30:54
是的,主要思想是在你parse()新的数据集之前,你应该每次都调用scheduler.clearAll()。
您可以删除if条件中的window.scheduler.parse([], 'json'),因为此行在代码中不执行任何操作。
以下面的方式更改代码是有意义的:
componentDidUpdate(prevProps) {
window.scheduler.clearAll();
if(this.props.showData.length) {
window.scheduler.parse(this.props.showData, 'json')
}
}https://stackoverflow.com/questions/60860916
复制相似问题