我有一个通用的 DialogueWindow 组件:
function DialogueWindow({elements}) {
return (
<div className="backdrop">
<dialog className="dialogue-window">
{elements}
</dialog>
</div>
)
}
export default DialogueWindow
它内部会显示所有传递给它的元素。目前我传递了一个 FileUploader 元素,它有一个“取消”按钮,用户可以用它来关闭对话框。
在 App.js 中:
<DialogueWindow
elements={
<FileUploader/>
}
/>
在 FileUploader 中:
function FileUploader() {
...
return (
<div className="file-uploader">
...
<div className="file-uploader-button-container">
<button>
Upload
</button>
<button>
Cancel
</button>
</div>
</div>
)
}
export default FileUploader
我见过在标准 JavaScript 中调用 document.getElementById() 来获取对话框元素,然后对其调用 close() 方法。但这在 React 中是如何实现的呢?