对使用ReactJS正确实施Flux有疑问。
假设我有一个联系表单,在提交时调用我的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中来处理它。
但在这里我只需要一个回复,以便我可以显示确认或错误消息。这还应该通过动作和商店传递吗?或者是否有更好的方法,比如将一个promise直接返回给组件,以便它可以运行一个回调函数而不涉及商店?
答案 0 :(得分:0)
总是使用存储/磁通动作来处理这类事情。
从Promise处理程序中调度data_received
,data_error
。它更具语义性,更易于调试,并且使用与其他所有数据相同的数据流(操作 - >存储 - >视图)。
答案 1 :(得分:0)
在通量架构中检索的所有数据都必须通过存储和操作来完成