redux saga没有被执行

时间:2018-03-02 11:18:46

标签: reactjs redux redux-form redux-saga

在这里反应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() ]
}

1 个答案:

答案 0 :(得分:0)

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

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

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

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