2017-07-25 10 views
0

オフィス365ファブリックのコンポーネント内にReactJsが存在しますsuch component。それは_getSelectionDetails()リストから選択された項目を数えるメソッドを持っています 私はそれをリセットするメソッドを作りたいとリスト内の項目の選択を解除します。たとえば、ボタンがあり、それを押すと、以前にマークしたリスト内のすべての項目がリセットされます。リストから選択したアイテムをリセットするにはどうすればいいですか?

_resetSelectedItems() :{ 
this.setState ({ selectionDetails: 0 }) 
} 

私はそれを呼び出した後、それが新しい状態を設定し、0を設定しますが、前に選択した項目が選択されたまま、diselectingは発生しません:私はやってみました。どのようにアイテムの選択を解除できますか?

+1

this._selection.XXXxを試してみてください。https://github.com/OfficeDev/office-ui-fabric-react/blob/master/packages/office-ui-fabric-react/src /utilities/selection/Selection.ts –

答えて

2

this.setState()は、this.stateの浅いマージを新しい状態に実行します。 this.stateselectionDetailsとそれ以上のオブジェクトがある場合this.setState ({ selectionDetails: 0 })selectionDetailsのみ更新され、その他は変更されません。他のオブジェクトを手動でクリーンアップする必要があります。

REF:this.setState

更新:

は最終的に私はそれを得た.... this._selection.setAllSelected(false)が動作します。

私のgithubプロジェクトをチェックするか、onlineをチェックしてください。

+0

私はそれを理解しています。私は選択したアイテムをリセットするために、どのオブジェクトを別のものでクリーニングしなければならないのか分かりません。 –

+0

状態や小道具を使用して、UIで選択した項目を設定する方法は? –

+0

私は選択したアイテムを設定する方法を書いていませんでした。それはすでに存在します。このようなメソッドがコンストラクタにあります:this._selection = new Selection({ onSelectionChanged :()=> this.setState({selectionDetails:this._getSelectionDetails()}) }); –

関連する問題