公式ドキュメントから私は2つの方法について知っています:そのキーでエンティティを取得し、最後に作成したエンティティを取得します。私の場合、現在のContentStateからすべてのエンティティにアクセスするメソッドも必要です。 これを実行する方法はありますか?そうでない場合は、すべてのエンティティキーを提供できるものはありますか? おかげドラフト.js。 ContentStateからすべてのエンティティデータを取得する方法
1
A
答えて
3
const getEntities = (editorState, entityType = null) => {
const content = editorState.getCurrentContent();
const entities = [];
content.getBlocksAsArray().forEach((block) => {
let selectedEntity = null;
block.findEntityRanges(
(character) => {
if (character.getEntity() !== null) {
const entity = content.getEntity(character.getEntity());
if (!entityType || (entityType && entity.getType() === entityType)) {
selectedEntity = {
entityKey: character.getEntity(),
blockKey: block.getKey(),
entity: content.getEntity(character.getEntity()),
};
return true;
}
}
return false;
},
(start, end) => {
entities.push({...selectedEntity, start, end});
});
});
return entities;
};
0
すべてのエンティティオブジェクトとキーを取得するための可能なアプローチ質問に要求されるように
converToRaw
全体の状態のJSオブジェクトを提供します。 entityMap
にアクセスして、エンティティの配列を返すことができます。
const raw = convertToRaw(this.state.editorState.getCurrentContent())
console.log(raw.entityMap)
convertToRaw
メソッド呼び出しによるパフォーマンスの影響をチェックする必要があります。
キーは、私は簡潔にするためにはnullチェックを含めていない
const keys = Object.keys(raw.entityMap)
...としてアクセスすることができます。
関連する問題
- 1. JPAライフサイクルイベントを使用してエンティティデータを取得する方法
- 2. setstateドラフトjsを入力キー
- 3. ドラフトのコンテンツ全体を取得する方法
- 4. ノードjs内のメソッドですべてのjsファイルアクションを取得する方法
- 5. ドラフトJSがHTMLからimgを認識
- 6. すべてのmshtml.IHTMLDivElementをIHTMLDocument2から取得する方法は?
- 7. Wicketデータテーブルからすべてのモデルオブジェクトを取得する方法
- 8. rails:Rails.cacheからすべてのキー値を取得する方法
- 9. Django - モデルからすべてのフィールドを取得する方法
- 10. すべてのページからデータを取得する方法は?
- 11. カスタムリストビューからすべてのedittext値を取得する方法
- 12. Qtモデルからすべてのデータを取得する方法
- 13. Firebaseデータベースからすべての値を取得する方法
- 14. クラウドキットからすべてのレコードを取得する方法
- 15. 状態からすべてのラベルを取得する方法
- 16. listviewからすべてのedittextデータを取得する方法
- 17. ディレクトリからすべてのファイルを取得する方法
- 18. Xeroからすべてのレポートを取得する方法は?
- 19. Youtubeビデオからすべてのコメントを取得する方法
- 20. Jsonからすべてのイメージを取得する方法
- 21. ドラフトでユーザーから入力されたテキストを取得する
- 22. ドラフトjs。 EditorContent to Database
- 23. ドラフトjsエディタの空白をチェックする方法
- 24. Node JS URLからすべてのiframeを取得
- 25. ドラフトのアドレスとして「null」を取得
- 26. レスポンスアングルからトークンを取得する際に、すべてのヘッダにパスポートトークンを設定する方法js
- 27. jsのイベントターゲットから値を取得する方法
- 28. グリッドの行からデータを取得する方法Ext JS
- 29. Angular JSのPHPリクエストからデータを取得する方法は?
- 30. ドラフトjsエディタにクリック可能なパディングを追加する方法
作成したエンティティのセットを保存しないのはなぜですか? –
URのお返事ありがとうございます。私もこれを試してみます。問題は、ユーザーがエンティティで範囲を削除したときに、このセットからエンティティを自動的に削除するように設定することです –