我有一个带有Select,DataTable和Button的Bokeh UI。
DataTable通过以下方式跟踪选择更改事件:
self.__table_data.on_change('selected',self.table_selection_change)
单击按钮时,我使用新的字典结构更改了DataTable源的选定属性,如here所示:
self.__table_data.selected = {'2d': {'indices': []}, '1d': {'indices': [my_new_index]}, '0d': {'indices': [], 'glyph': None}}
问题是,当我进行此更新时,我的回调(table_selection_change)被调用两次,而我只期望一次调用。
答案 0 :(得分:1)
问题是整个dict不应该更新。只有相关的密钥必须更新。
更换
self.__table_data.selected = {'2d': {'indices': []}, '1d': {'indices': [my_new_index]}, '0d': {'indices': [], 'glyph': None}}
通过
self.__table_data.selected['1d'] = {'indices':[my_new_index]}
解决了这个问题。