redux-saga: моя сага не запускается отправленным действием, почему? - PullRequest
0 голосов
/ 19 июня 2020

Я новичок в redux-saga и уже пару дней искал решение своей проблемы, поэтому решил, что спрошу здесь, так как пришел пустой.

Я отправляю это connectSignalR action:

const CONNECT_SIGNALR = 'SIGNALR/CONNECT';
const CONNECT_SIGNALR_FULFILLED = `${CONNECT_SIGNALR}_FULFILLED`;
const CONNECT_SIGNALR_FULFILLING = `${CONNECT_SIGNALR}_FULFILLING`;
const CONNECT_SIGNALR_PENDING = `${CONNECT_SIGNALR}_PENDING`;
const CONNECT_SIGNALR_REJECTED = `${CONNECT_SIGNALR}_REJECTED`;
const CONNECT_SIGNALR_STILL_PENDING = `${CONNECT_SIGNALR}_STILL_PENDING`;

export default function connectSignalR({ signalR }) {
  return {
    type: CONNECT_SIGNALR,
    payload: {
      signalR
    }
  };
}

export { CONNECT_SIGNALR, CONNECT_SIGNALR_FULFILLED, CONNECT_SIGNALR_FULFILLING, CONNECT_SIGNALR_PENDING, CONNECT_SIGNALR_REJECTED, CONNECT_SIGNALR_STILL_PENDING };

И затем я ожидаю, что эта сага запустится:

/* eslint no-magic-numbers: ["error", { "ignore": [0, 10] }] */

import { call, cancel, cancelled, fork, put, race, take, takeEvery, takeLatest } from 'redux-saga/effects';

import { CONNECT_SIGNALR, CONNECT_SIGNALR_PENDING } from '../actions/connectSignalR';

function* workerSaga() {
  console.log("Hello from worker saga");
  yield put({ type: CONNECT_SIGNALR_PENDING });
}

export default function*() {
    // for (;;) {
    //   const {
    //     payload: { signalR }
    //   } = yield takeEvery(CONNECT_SIGNALR);

    // const {
    //   payload: { signalR }
    // } = yield takeEvery(CONNECT_SIGNALR, workerSaga);

    yield takeLatest(CONNECT_SIGNALR, workerSaga);

}

Но это не так. Я тоже попробовал закомментированный код. Он работает в моих сагах как:

export default function* sagas() {
...
yield fork(connectionSignalRSaga);
...
}

Мои другие саги запускаются, поэтому я действительно не понимаю, почему это не так. Мы очень ценим любую помощь, которую вы можете оказать!

...