2016-08-11 11 views
0

クリックしたテキストに応答してDraftJのContentStateを手動で更新するにはどうすればよいですか?DraftJs ContentStateをクリックしたテキストで手動で更新する

私はテキスト項目のリストを持っています。 1つをクリックすると、そのテキストをDraftjsに渡しますが、componentWillReceiveProps()を使用して状態を設定しているので、テキストを2回クリックして更新を取得する必要があります。今小道具が正しく設定されDraftjsの更新(とコンポーネントのアップデート:

componentWillReceiveProps() { 
    const activeNoteText = this.props.activeNoteText; 
    if (activeNoteText !== '') { 
     this.setState({ editorState: EditorState.createWithContent(ContentState.createFromText(activeNoteText)) }); 
    } 
} 

まずクリック:アプリケーション状態とは
セカンドクリック(新しい小道具を受ける前に、コンポーネントのアップデート)Draftjsまでの小道具を渡す更新最初のクリックで受け取った小道具)

これをどのようにして1回で達成できますか?私はcomponentDidReceivePropsが存在しないことを知っています。私はまだ完全に理解すると主張することはできませんが、良い理由があることを知っています。このようなことを達成するベストプラクティスの方法は何ですか?

答えて

0

なぜあなたはcomponentwillReceivePropsを使用していますか?

あなたができることは、Draftjsの設定(つまり、私が作ることができるものです)を親に持ち、その更新のクリックハンドラでリスト項目をクリックするたびにeditorStateをクリックしてからドラフトjsに小道具としてそれを渡す。あなたのコンポーネントが最初にロードされたとき、それが空でない場合は、チェックしている状態、のためにさらに

、 あなたは、初期化のために

 getInitialState(){ 
    ..... 
    } 

を使用することができます。したがって、editorStateのデフォルト値を設定することができます。

関連する問題