Как подписать redux-сагу на акцию? - PullRequest
0 голосов
/ 02 февраля 2019

У меня проблема с редукс-шалфеем.Не удается подписаться на действие.У меня есть эта установка для магазина

import { createStore, applyMiddleware, compose } from "redux"
import createSagaMiddleware from "redux-saga"

import rootSaga from "../config/rootSaga"
import rootReducer from "../config/rootReducer"

const effects = []

let composeEnhancers = compose

if (process.env.NODE_ENV === "development") {
  composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ // eslint-disable-line no-underscore-dangle
}

const sagaMiddleware = createSagaMiddleware()
effects.push(sagaMiddleware)

const store = createStore(rootReducer, {}, composeEnhancers(applyMiddleware(...effects)))
sagaMiddleware.run(rootSaga)

export default store

Похоже, промежуточное программное обеспечение саги не работает.Я вижу console.log из своего rootSaga, но когда происходит редукционное действие, сага не работает

export default function* searchRootSaga() {
  console.log("searchRootSaga") // I see this on start
  yield all([fork(throttle, 100, SEARCH.GET.REQUEST, getSearchThis)])
}

export function* getSearchThis(action) { 
  console.log("getSearchThis") // I dont see this
  try {
    // const response = yield call(API.getSearch, query)
    const response = dummy_data

    yield put(getSearchSuccess(response))
  } catch (e) {
    yield put(getSearchFailure("Server Err"))
  }
}

Инструменты React dev показывают действие SEARCH.GET.REQUEST, но сага не работает.Что я делаю не так?

1 Ответ

0 голосов
/ 03 февраля 2019

Я думаю, что дроссельная заслонка сама по себе является неблокирующим эффектом.Так что вам не нужно его разветвлять.Попробуйте:

yield throttle(100, SEARCH.GET.REQUEST, getSearchThis)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...