在React + Flux中从服务返回到组件的回调
Returning callback from service to component in React + Flux
有一个关于Flux与ReactJS的正确实现的问题。
假设我有一个联系人表单,它在提交时调用我的ContactService,传递表单信息。
ContactService.js
import request from 'superagent';
import when from 'when';
import ContactActions from '../actions/';
let constants = require('../constants.js');
const BASE_URL = constants.default.BASE_URL;
class ContactService {
submitFormData(formData) {
request
.get(BASE_URL + 'api/v1/contact')
.end(function(err, res){
if (!err && res){
// This is where my question is
} else {
console.log("There has been an error submitting contact form to API");
console.log(err)
// This is also kind of where my question is
}
})
}
}
export default new ContactService();
现在,我想通知我的组件提交是否成功。我的问题是,最好的方法是什么?如果我正在从API中检索数据,或者需要更改组件的状态,我将通过将响应传递给Action来处理它,并将数据保存在组件可以订阅的Store中。
但是这里我只需要一个响应,这样我就可以显示确认或错误消息。它还应该通过操作和存储传递吗?或者有没有更好的方法,比如直接向组件返回一个承诺,这样它就可以运行一个回调函数,而完全不涉及存储?
总是使用store/flux动作。
从Promise处理程序调度data_received
, data_error
。它更语义化,更容易调试,并使用与其他内容相同的数据流(action -> store -> view)。
通量架构中的所有数据检索都必须通过存储和操作完成
相关文章:
- 在浅层渲染的反应组件上,Enzyme为道具返回null
- 通过返回键进行跨组件通信
- 秘银组件不返回任何内容
- React 组件中的字符串插值,其中包含从服务器返回的字符串
- 通过返回输入的组件接收 onPaste / onChange
- 如何让我的组件返回自身的序列化
- 我的PlayFramework Action在Future准备就绪之前返回,如何更新网页组件
- 将控制器操作传递给EmberJS中的组件会返回未定义的结果
- 如何使用react.js返回多个列表组件
- 在Jest中呈现React组件返回null
- FireFox中HTML/iframe错误-组件返回失败代码:0x80004005 (NS_ERROR_FAILURE)
- Vue.js "选项应该是一个在组件定义中返回每个实例值的函数
- React无状态功能组件的流返回类型是什么?
- React组件方法this.state.myState从child返回后未定义
- Qt不会创建组件,也不会返回错误
- 使用Javascript解析并返回日期的组件
- 将数据从Java/JSF2 bean传递到Javascript/jQuery组件作为返回值的最佳方法
- ReactJS:在循环中返回一个React组件
- 组件返回失败码:0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMEventTarg
- 定义变量并从箭头函数返回组件