【发布时间】:2019-02-23 22:02:39
【问题描述】:
有没有一种干净的方法来实现这样的反应中的消息框模式?
import MessageBox from "MessageBox";
class MyComponent {
render () {...}
onDeleteButtonClick = async (data) => {
let result = await MessageBox.show("Delete?", "Sure you want to delete this?", MessageBox.Buttons.OkCancel);
if(result === MessageBox.Result.Ok) {
deleteThing(data);
}
}
如果不求助于 refs、违反 promise 规则(进行延迟)或做 DOM 诡计(使用渲染组件的包装器),似乎没有办法解决这个问题。
我构建了一个遵循我上面的 API 的组件,除了回调,但它需要一个 ref 并且感觉我没有以反应的方式构建东西。
【问题讨论】:
-
你的代码到底有什么问题?
-
@dfsq - 没有问题。该代码是我想编写的 MessageBox api 的一个示例,它不使用 refs、deferreds 或开箱即用的 dom 操作。我觉得我在重复我原来的帖子,你读了吗?
-
您尝试过使用门户网站吗? reactjs.org/docs/portals.html,我大部分时间都倾向于使用它