從官方文檔我知道關於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. 核心數據:獲取所有實體
- 2. 從App Engine下載數據,但沒有獲取所有實體
- 3. 如何獲取所有堅持實體
- 4. 從Model.xcdatamodeld獲取所有實體
- 5. 如何獲取實體及其所有相關實體
- 6. 如何從Doctrine獲取所有映射的實體類?
- 7. 從Autocad獲取實體數據
- 8. 無法從數據庫獲取實體
- 9. 從datapicker獲取數據到實體
- 10. CRM-從父實體獲取所有相關實體的字段總數
- 11. iPhone SDK核心數據:獲取所有實體與零關係?
- 12. 獲取意圖,實體,上下文和所有數據
- 13. 實體框架4.0模型不能獲取所有數據
- 14. 如何從數據庫中獲取所有數據?
- 15. 如何從數據庫中獲取所有用戶數據?
- 16. 如何從Windows窗體獲取數據
- 17. 有沒有辦法從EntityManager獲取所有的管理實體
- 18. 從父實體獲取核心數據實體
- 19. 實體框架TPT繼承 - 如何從數據庫中獲取?
- 20. 如何從數據庫獲取實體時不觸發PropertyChanged?
- 21. 如何從實體模型中獲取列數據?
- 22. 獲取實體框架以在更新時從數據庫獲取實體
- 23. CakePHP 3:如何獲取原始實體數據和修改的實體數據?
- 24. 從Oracle數據庫獲取所有表
- 25. 從ResultSet獲取所有數據庫
- 26. 分別從所有UITableViewCells獲取數據
- 27. 從超類獲取所有數據(this =)
- 28. 如何從數組中獲取所有數據?
- 29. pdo數組如何從數據庫中獲取所有信息
- 30. 如何獲取給定實體的所有CRM 2011相關實體
爲什麼不保留一組您創建的實體? –
謝謝你的回答。我也會試試這個。問題是當用戶用實體刪除範圍時,自動從這個集合中刪除一個實體 –