如何在yield take()之后执行

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

我正在尝试redux-saga。通过单击按钮调度事件后,我希望执行console.log("Now Called saga03!!");

import { fork, take } from 'redux-saga/effects';

export function* helloSaga(){
    console.log('Hello Saga Root !!');
    yield fork(saga01);
    yield fork(saga02);
    yield fork(sagaFetch);
}

function* saga01() {
    console.log('Hello Saga01 !!!');
}

function* saga02() {
    console.log('Hello Saga02 !!!');
}

function* sagaFetch() {
    while (true){
        console.log("Loop Start!!");
        yield take('FETCH_SAGA_START');
        console.log("Now Called saga03!!");
    }
}
    doCall(){
        console.log("DO CALL!!");
        this.props.dispatch({type: 'FETCH_SAGA_START'});
    }
    render() {
        return (
            <div>
                <button onClick={this.doCall}>Call Saga 03</ button>
            </div>
        );
    }

但是我看不到任何console.log执行。

我误会了吗?

reactjs redux redux-saga
1个回答
0
投票

您是否还有其他所有日志?如果您这样做,那么我想问题可能出在这一行yield take(‘FETCH_SAGA_START’)

我什至不了解您要做什么

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