无法找到任何描述它的示例。
我正在尝试使用react app创建下载按钮,但是通过redux,即。在行动中我正在连接到url并获取响应的文件(代码200)。
export function sendTimeline(token, timelineObj) {
const request = axios.post(`muURLGoesHere`, timelineObj, {
headers: {
"Content-Type": "application/vnd.ms-excel",
"X-Accept-Version": "v1",
Authorization: `Bearer ${token}`
}
});
console.log(request);
return {
type: constants.actionTypes.TIMELINE_DATA,
payload: request
};
}
如何将其传递给reducer并在反应方面下载。
您可能知道该文章的示例或任何提示。
谢谢
答案 0 :(得分:1)
我不会以承诺的有效载荷派遣行动。另外使用redux-thunk
进行更精细的连续动作调度:
const sendTimeline = (token, timline) => dispatch => {
dispatch({ type: 'sendtimeline/start' })
return fetch(…)
.then(res => res.json())
.then(json => dispatch({
type: 'sendtimeline/success',
payload: json
}))
.catch(err => dispatch({
type: 'sendtimeline/error',
payload: err,
error: true
}))
}
这样你就不必处理reducer中的异步问题,因为动作会处理它。你也可以这样做:
this.props.sendTimeline(…).then(…)
在组件中使用时,因为promise是从动作创建者返回的。