2017-04-01 3 views
0

私のプロジェクトにreact-native-zss-rich-text-editorを実装しており、RichTextToolbarRichTextEditorコンポーネントへの参照を返す関数が必要な問題があります。JSXで宣言される前のリアクタンス要素を参照する

RichTextToolbarそれは

<RichTextEditor 
    ref={(r) => this.richtext = r}/> 
<RichTextToolbar 
    getEditor={() => this.richtext}/> 

正常に動作します。しかし、私が最初にRichTextToolbar、その後

<RichTextToolbar 
     getEditor={() => this.richtext}/> <----- 
    <RichTextEditor 
     ref={(r) => this.richtext = r}/> 

答えて

1

このコードを試してみてください例外をスローRichTextEditorをレンダリングしたいと思います前に、私はのRichTextEditorをご注文いただいた場合:

<RichTextToolbar 
    getEditor={() => this.richtext ? this.richtext : <div/>}/> 
<RichTextEditor 
    ref={(r) => this.richtext = r}/> 

この解決策は、pそれにはコンポーネントRichTextToolbarの要件と互換性のあるものが必要です。 divが良くない場合は、他のものと交換してください。私は似たような試みたがRichTextToolbarのcomponentDidMount機能はのRichTextEditorを登録しようとするとスローと例外

{ this.richtext ? 
    <RichTextToolbar 
     getEditor={() => this.richtext}/> 
    : null 
} 
<RichTextEditor 
    ref={(r) => this.richtext = r}/> 
+0

あなたのコメントによると、これを試してみてください。 – Ricky

+0

私の解決策があなたにぴったりなのなら、私に投票して答えてください。 – user394010

+0

ちょうどそれを試みた。それはまだRichTextToolbar https://github.com/wix/react-native-zss-rich-text-editor/blob/master/src/RichTextToolbar.jsの69行目で失敗しました。コードをフォークして修正する必要があるかもしれません....レンダリングの順序を変えることができるJSXトリックがあることを望んでいました。 – Ricky