Redux Saga - [... эффекты] устарели в пользу всех ([... эффекты]), пожалуйста, обновите ваш код - PullRequest
0 голосов
/ 29 августа 2018
function* rootSaga() {
    yield all(sagas.map(saga => fork(saga)));
}

sagaMiddleware.run(rootSaga);

В приведенном выше коде sagas - это массив функций генератора, которые все еще работают как положено. Я новичок в Redx Saga, поэтому, возможно, я не предоставляю соответствующую информацию, но я следовал многим инструкциям, которые все говорят то же самое, но я все еще получаю сообщение об устаревании

[...effects] has been deprecated in favor of all([...effects]), please update your code

Я импортирую функции redux-saga через

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

Есть ли что-то, чего мне здесь не хватает? Все работает нормально, но я получаю это предупреждение об устаревании.

1 Ответ

0 голосов
/ 30 августа 2018

Похоже, что у вас должно работать. fork - это эффект, а эффект all ожидает либо словарь объектов, либо массив эффектов. На более низком уровне я почти уверен, что это означает, что в любом случае эффект all ожидает генераторов. На странице учебника для новичков , созданной в Редукс-саге, их корневая сага собрана следующим образом:

function* helloSaga() {
  console.log('Hello Sagas!')
}

function* watchIncrementAsync() {
  yield takeEvery('INCREMENT_ASYNC', incrementAsync)
}

export default function* rootSaga() {
  yield all([
    helloSaga(),
    watchIncrementAsync()
  ])
}

Здесь следует отметить, что в корневом массиве саг helloSaga и watchIncrementAsync выполняются на месте, и каждый возвращает генератор. В вашем примере вы возвращаете fork, но по сути это должно быть то же самое. Я думаю, что ваша карта на самом деле не возвращает массив эффектов.

...