对于DetailsLists," onActiveItemChanged"由于activeItem没有改变,因为第二次单击同一行(关闭模型dialolg之后)被忽略,因此打开该项目的模式对话框效果不佳。 " onItemInvoke"并不是很好,因为它只响应双击。
有没有办法清除活动项目?
答案 0 :(得分:0)
以下是两个解决方案:
A:强制重建DetailsList,迭代密钥
1)将状态变量添加到包含键值的父组件
state: ComponentState = {
dialogKey: 0
}
2)将密钥添加到DetailsList
<DetailsList
key={this.state.dialogKey}
onActiveItemChanged={trainDialog => this.onOpenModel(item)}
...
/>
3)模型关闭时增加键:
onCloseModal() {
this.setState({
dialogKey: this.state.dialogKey+1
})
}
这将强制重建DetailsList,因此再次点击相同的for将触发onActiveItemChanged
B:为每列的渲染器添加一个onClick处理程序:
<span onClick={() => component.onOpenModel(action)}>Cell Content</span>