将不需要't映射到状态
Where to put functions that don't map to state?
React/Redux n00b这里:)-使用一个糟糕的API,它不能正确返回错误代码(即使端点关闭也会返回200),因此会打乱我的Ajax调用。API的所有者将无法很快纠正这一问题,所以我现在必须解决它。
我目前正在用这样的东西检查每个success
(使用lodash):
success: function(data) {
// check if error is REALLY an error
if (_.isUndefined(data.error) || _.isNull(data.error)) {
if (data.id) data.sessionId = data.id;
if (data.alias) data.alias = data.alias;
resolve(data || {});
} else {
reject(data); // this is an error
}
}
我想把它移到它自己的函数中,这样我就可以把它与执行Ajax调用的任何操作一起使用,但我不确定把它包括在哪里。
这种类型的函数应该映射到状态(因此,将其视为一个操作并构建一个reducer),还是应该是Redux之外的通用函数并放入main.js
?
您可以根据promise是否得到解决来调度不同的操作。最简单的方法是这样的:
function onSuccess(data) {
return {
type: "FETCH_THING_SUCCESS",
thing: data
};
}
function onError(error) {
return {
type: "FETCH_THING_ERROR",
error: error
};
}
function fetchThing(dispatch, id) {
// the ajax call that returns the promise
fetcher(id)
.then(function(data){
dispatch(onSuccess(data));
})
.catch(function(error) {
dispatch(onError(error));
});
}
这里有更多关于如何做这种事情的文档。。。
相关文章:
- 如何在映射数组中添加换行符
- ng映射方向备选方案
- 无法通过数组映射绑定
- 事件和状态
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 获取选择框的状态
- 相位器状态未捕获参考错误
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何使用密码检测网络中的状态连接
- Ember.js-接口状态应该存储在哪里
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 在Angular 2中布线期间保持零部件处于活动状态
- 使用Scala Play Framework视图中的键检索映射值
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- Highcharts:树映射选择状态不起作用
- 在拉力赛中:我是否可以将自定义任务状态映射到拉力赛任务板中的现有任务状态(类似于用户情景的看板)
- 将不需要't映射到状态
- React/Redux:mapStateToProps实际上并没有将状态映射到道具
- 将状态绑定到 React 中映射函数内部的条件语句
- 错误:模板应该只负责将状态映射到UI.避免在模板中放置带有副作用的标记,例如