alibaba / alibaba/lowcode-engine
history.back/forward无法还原modal-node的hidden属性,导致模态框(对话框)中编辑后redo/undo失效问题
- Lingua principale
- TypeScript
- Stelle
- 15.9k
- Fork
- 2.7k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
## **在Modal模态框节点中编辑子组件后,redo/undo无法正常撤销和还原**
查看源码发现在DocumentModel中,通过importSchema的方式来实现redo/undo,会重建ModalNodesManager。
导致Modal节点的hidden属性被重置(即使schema中的hidden是false)。
所以在编辑Modal节点中编辑子组件后,redo/undo会导致Modal隐藏。
用户想要查看redo/undo是否生效,会再次点开Modal。此时会打乱history的records,无法使用redo/undo。
请问这个问题,有没有好的规避方法?
---
## **复现步骤**
1、打开Antd组件官方Demo:https://lowcode-engine.cn/demo/demo-basic-antd/index.html
2、拖入“反馈>普通型”Modal组件。
3、在Modal内,拖入“主按钮”组件。
4、键盘操作“undo”,或者点击头部“撤销”按钮。Modal隐藏。
5、大纲树中点击Modal,打开检查,“主按钮”组件被删除。
6、键盘操作“redo”,或者点击头部“恢复”按钮。Modal依旧隐藏,“主按钮”组件不会恢复。
---
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia con il flusso di importazione importSchema di DocumentModel e la gestione di ModalNodesManager descritti nell’issue, quindi riproduci il comportamento nella demo Antd con un Modal contenente un pulsante. Traccia il motivo per cui lo stato nascosto del nodo Modal cambia durante l’annullamento e il ripristino; il lavoro è completato quando il componente figlio viene rimosso e ripristinato, mentre il Modal rimane utilizzabile e la cronologia non viene interrotta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- frontend
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100