【发布时间】:2019-07-06 16:40:03
【问题描述】:
我正在尝试重构我的应用程序,以便它可以与 redux 一起使用。我有一个 redux 操作,其中第一个 console.log 产生输出(下面的第 3 行显示了 api url)。没有看到其他输出。 catch 似乎也没有被调用(我测试过)。
fetch 似乎什么也没做。然而,当提取代码位于 componentWillMount 中的原始位置(重构之前)时,提取代码仍然有效。
我的抓取有什么问题?感谢您的帮助!
export function getPlatzBelegungen(court, day1, day2) {
const url = HOSTNAME + "/intern/api/platz.php?op=ra&p=" + court + "&ds=" + day1 + "&de=" + day2;
console.log(url);
return function(dispatch) {
return fetch(url)
.then(result => {
if (result.ok) {
console.log("###>>> result.ok");
return result.json();
} else {
throw new Error('Fehler beim Laden der Platzbuchungsdaten');
}
})
.then(result => {
console.log("###>>> courtData berechnen");
let courtData = result.records.map ( r => {
let k = r.id;
let cn = computeBelClasses (r.starts_at, r.ends_at);
console.log("PLATZ:" + r.court)
let spieler =
r.p1
+ (r.p2 ? ', ' + r.p2 : ' ')
+ (r.p3 ? ', ' + r.p3 : ' ')
+ (r.p4 ? ', ' + r.p4 : ' ');
return (
<Link key={k} to={'/belegungsdetails/' + r.id}>
<div key={k} className={cn}>
<strong>{r.starts_at.substring(11,16)} </strong>
{spieler}
</div>
</Link>
)
})
dispatch({ type: BELEGUNGEN_LOADED, payload: courtData });
})
.catch(
dispatch({ type: BELEGUNGEN_LOAD_FAILED, payload: [] }));
};
};
【问题讨论】:
-
.catch( dispatch({ type: BELEGUNGEN_LOAD_FAILED, payload: [] }))的预期结果是什么?dispatch()是否返回函数?
标签: javascript reactjs redux fetch-api