【发布时间】:2017-05-26 13:16:14
【问题描述】:
我正在尝试使用 Container/Presentational pattern(也称为 Smart/Dumb 组件)来实现 React 应用程序。
简单地说,我所拥有的是一个展示性组件,它显示和隐藏一个模式窗口。在模式中有一个表单,一旦用户从 Presentational 组件提交表单,我就会调用容器(通过道具)。此时,Container 发出 AJAX 请求。
用一种更直观的方式来说,这就是发生的事情:
modal submit -> Presentational calls Container -> Container makes AJAX call
AJAX 调用完成后,我需要通知 Presentational 组件,以便它可以隐藏模式。
我实现它的方式如下:
// In Presentational.jsx
handleModalSubmit() {
this.props
.onSubmit()
.then(() => this.setState({ isModalOpen: false }))
}
// In Container.jsx
handleSubmit () {
return fetch(/*...*/).then(/* handle the data */)
}
您可以在此处查看它的运行情况https://www.webpackbin.com/bins/-Kl3oN5Hua4cxwmZx4Qo
我的问题是父母可以向孩子返回承诺还是有更被动的方式来做到这一点?
【问题讨论】:
-
我认为在这种情况下使用 Redux 更好。
标签: javascript reactjs