redux saga没有被执行

问题描述 投票:1回答:1

在这里反应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() ]
}
reactjs redux redux-form redux-saga
1个回答
0
投票

我怀疑问题出在handlSubmitLogin方法上。它可能不需要返回任何东西,绝对不需要使用promise。

它应该使用react-redux dispatch发送一个动作。该方法应该看起来像这样。

handleSubmitLogin = (values, dispatch) => {
    dispatch(this.props.dologin(values.username));
};

错误处理等应该在传奇中发生。

© www.soinside.com 2019 - 2024. All rights reserved.