2017-07-24 25 views
0

對於DetailsLists,「onActiveItemChanged」不適用於打開該項目的模式對話框,作爲第二次點擊同一行(在關閉模型後dialolg)被忽略,因爲activeItem沒有改變。 「onItemInvoke」不是很好,因爲它只響應雙擊。辦公結構:使用戶能夠重新選擇DetailList中的同一行

有沒有辦法清除活動項目?

回答

0

這裏有兩種解決方案:

答:強制重建DetailsList我迭代的關鍵

1)添加狀態變量爲保存鍵值

 state: ComponentState = { 
     dialogKey: 0 
    } 

2父組件)添加DetailsList的關鍵字

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

3)當t增加密鑰時他的模型關閉:

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

這將迫使在同一個重建DetailsList的那麼第二點擊就會觸發onActiveItemChanged

B:添加一個onClick處理程序來渲染爲每列:

<span onClick={() => component.onOpenModel(action)}>Cell Content</span> 
相關問題