在 JSX 中声明之前引用 React 元素
Reference a React Element before its declared in JSX
我正在我的项目中实施 react-native-zss-rich-text-editor,但遇到一个问题,即 RichTextToolbar
需要一个 returns 对 RichTextEditor
组件的引用的函数。
如果我在 RichTextToolbar 之前订购 RichTextEditor,它工作正常
<RichTextEditor
ref={(r) => this.richtext = r}/>
<RichTextToolbar
getEditor={() => this.richtext}/>
但我想先渲染 RichTextToolbar
然后 RichTextEditor
抛出异常
<RichTextToolbar
getEditor={() => this.richtext}/> <-----
<RichTextEditor
ref={(r) => this.richtext = r}/>
试试这个代码:
<RichTextToolbar
getEditor={() => this.richtext ? this.richtext : <div/>}/>
<RichTextEditor
ref={(r) => this.richtext = r}/>
此解决方案添加了与组件 RichTextToolbar
要求兼容的内容。如果 div
不好 - 换成其他的。
根据您的评论试试这个:
{ this.richtext ?
<RichTextToolbar
getEditor={() => this.richtext}/>
: null
}
<RichTextEditor
ref={(r) => this.richtext = r}/>
我正在我的项目中实施 react-native-zss-rich-text-editor,但遇到一个问题,即 RichTextToolbar
需要一个 returns 对 RichTextEditor
组件的引用的函数。
如果我在 RichTextToolbar 之前订购 RichTextEditor,它工作正常
<RichTextEditor
ref={(r) => this.richtext = r}/>
<RichTextToolbar
getEditor={() => this.richtext}/>
但我想先渲染 RichTextToolbar
然后 RichTextEditor
抛出异常
<RichTextToolbar
getEditor={() => this.richtext}/> <-----
<RichTextEditor
ref={(r) => this.richtext = r}/>
试试这个代码:
<RichTextToolbar
getEditor={() => this.richtext ? this.richtext : <div/>}/>
<RichTextEditor
ref={(r) => this.richtext = r}/>
此解决方案添加了与组件 RichTextToolbar
要求兼容的内容。如果 div
不好 - 换成其他的。
根据您的评论试试这个:
{ this.richtext ?
<RichTextToolbar
getEditor={() => this.richtext}/>
: null
}
<RichTextEditor
ref={(r) => this.richtext = r}/>