[英]Find child of specific type in render() of React component
我正在使用Draft.js,需要遞歸到props.children
以查找DraftEditorBlock
類型的DraftEditorBlock
。
由於某種原因,這似乎並沒有奏效:
import React from 'react';
import { DraftEditorBlock } from 'draft-js';
...
export default class MyBlockRenderer extends React.Component {
...
render() {
const { children } = this.props;
const firstChild = React.Children.toArray(children)[0];
if (firstChild instanceof DraftEditorBlock) {
...
}
...
}
}
使用instanceof
的行導致此錯誤:
TypeError: Right-hand side of 'instanceof' is not an object
我究竟做錯了什么?
請自上而下閱讀draftjs源代碼中的render()
方法。 DraftEditorBlock
和DraftEditor
之間仍然有許多級別。
我建議您緩存所有已創建/掛載的DraftEditorBlock
而不是通過以下方法在render()
找到它們:
DraftEditorBlock
或具有單個<DraftEditorBlock ... />
子代的新組件。 blockRendererFn
將text
塊類型映射到您的組件。 應該管用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.