Office Fabric:允许用户重新选择DetailsList中的同一行

时间:2017-07-24 21:43:30

标签: ms-office office-ui-fabric office-fabric

对于DetailsLists," onActiveItemChanged"由于activeItem没有改变,因为第二次单击同一行(关闭模型dialolg之后)被忽略,因此打开该项目的模式对话框效果不佳。 " onItemInvoke"并不是很好,因为它只响应双击。

有没有办法清除活动项目?

1 个答案:

答案 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>