alibaba / alibaba/lowcode-engine

history.back/forward无法还原modal-node的hidden属性,导致模态框(对话框)中编辑后redo/undo失效问题

Aperta
#3,080 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.