在这里反应newb。我正在尝试编写执行Saga的登录页面。但佐贺从未执行过。第二个问题是,如果我再次点击提交按钮,则第二次不会调用handleSubmitLogin。有点失落。
LoginPage.js
handleSubmitLogin = (values, dispatch) => {
return new Promise((resolve, reject) => {
this.props.dologin(values.username)
}).catch((error) => {
console.log('handleSubmitLogin error ' + error);
});
};
actionCreators.js
export function dologin(payload) {
console.log('dologin happens OK (first time)');
return {
type : 'DO_LOGIN',
payload
}
};
sagas.js
function* loginRequested(action) {
console.log('loginRequested never happens');
}
function* mySaga() {
yield takeLatest('DO_LOGIN', loginRequested);
}
export default function* sagas() {
console.log('inside sagas happens OK!');
yield [ mySaga() ]
}
答案 0 :(得分:0)
我怀疑问题出在handlSubmitLogin
方法上。它可能不需要返回任何东西,并且绝对不需要使用承诺。
它应该使用react-redux
调度发送一个动作。该方法应该看起来像这样。
handleSubmitLogin = (values, dispatch) => {
dispatch(this.props.dologin(values.username));
};
错误处理等应该在传奇中发生。