1

对于 DetailsLists,“onActiveItemChanged”不能很好地打开该项目的模式对话框,因为第二次单击同一行(关闭模型对话框后)将被忽略,因为 activeItem 没有更改。“onItemInvoke”也不是很好,因为它只响应双击。

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

4

1 回答 1

0

这里有两个解决方案:

A:强制重建 DetailsList 我迭代密钥

1)将状态变量添加到包含键值的父组件

     state: ComponentState = {
         dialogKey: 0
     }

2)将密钥添加到DetailsList

        <DetailsList
            key={this.state.dialogKey}
            onActiveItemChanged={trainDialog => this.onOpenModel(item)}
            ...
        />

3)模型关闭时增加key:

     onCloseModal() {
         this.setState({
             dialogKey: this.state.dialogKey+1
         })
     }

这将强制重建 DetailsList,因此再次单击相同的 for 将触发 onActiveItemChanged

B:为每一列的渲染器添加一个 onClick 处理程序:

<span onClick={() => component.onOpenModel(action)}>Cell Content</span>
于 2017-10-20T16:02:34.797 回答