從官方文檔我知道關於2種方法:通過其密鑰獲取實體並獲取最後創建的實體。就我而言,我還需要一種方法來訪問當前ContentState中的所有實體。 有什麼方法可以執行此操作嗎?如果沒有,是否有一個可以提供所有實體密鑰? 感謝Draft.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
方法調用而導致的性能影響。
鍵可以作爲被訪問......
const keys = Object.keys(raw.entityMap)
我還沒有爲簡潔空檢查。
相關問題
- 1. 如何從EF6.1的實體中異步獲取所有數據?
- 2. 核心數據:獲取所有實體
- 3. 從App Engine下載數據,但沒有獲取所有實體
- 4. 如何獲取所有堅持實體
- 5. 從Model.xcdatamodeld獲取所有實體
- 6. 如何從RavenDB數據庫獲取所有實體名稱(集合名稱)?
- 7. 如何獲取實體及其所有相關實體
- 8. 獲取所有實體的所有子實體CoreData
- 9. 如何從Doctrine獲取所有映射的實體類?
- 10. 如何從JSON數組中獲取具有某個名稱的所有實體
- 11. 從datapicker獲取數據到實體
- 12. 使用nspredicate從實體獲取數據
- 13. 無法從數據庫獲取實體
- 14. 從Autocad獲取實體數據
- 15. 從多個實體CoreData獲取數據
- 16. CRM-從父實體獲取所有相關實體的字段總數
- 17. 實體框架4.0模型不能獲取所有數據
- 18. iPhone SDK核心數據:獲取所有實體與零關係?
- 19. 獲取意圖,實體,上下文和所有數據
- 20. 如何從數據庫中獲取所有用戶數據?
- 21. 如何從數據庫中獲取所有數據?
- 22. 如何從數據庫中的所有表中獲取數據
- 23. 如何從Windows窗體獲取數據
- 24. 有沒有辦法從EntityManager獲取所有的管理實體
- 25. 從第二個實體獲取數據來自一個實體
- 26. 從父實體獲取核心數據實體
- 27. 如何獲取所有沒有給定屬性的實體?
- 28. 如何獲取數據的所有行?
- 29. 如何獲取從linq到實體查詢的列元數據?
- 30. 實體框架TPT繼承 - 如何從數據庫中獲取?
爲什麼不保留一組您創建的實體? –
謝謝你的回答。我也會試試這個。問題是當用戶用實體刪除範圍時,自動從這個集合中刪除一個實體 –