Я посмотрел на эту проблему , но, следуя предложению из ответа, похоже, не работает.
Я создал сагу в частной node_module
который должен дождаться отправки определенного действия c перед выполнением вызова API. Когда я запускаю этот точно такой же код в моем модуле, он работает нормально; однако, когда я перемещаю этот код в node_module
, отправленные действия недоступны.
Вот мой код
// node_modules/fe-utils
import { FETCH_USER_SUCCESS } from 'fe-admin';
import { takeLatest } from 'redux-saga/effects';
const { BASE_SERVICE_URL } = process.env;
export function* initSaga({
url = BASE_SERVICE_URL,
context = {},
defaults = {},
}) {
yield takeLatest([FETCH_USER_SUCCESS], function* execute() {
yield put(fetchStuff({ url, context, defaults }));
});
}
// sagas/index.js
import { initSaga } from 'fe-utils';
export default function* rootSagas() {
...
yield fork(initSaga, { url: 'http://service-url.com' });
}
// create-store.js
import { createStore, applyMiddleware } from 'redux';
import createSagaMiddleware from 'redux-saga';
import rootReducer from './reducers';
import createRootReducer from './appState';
import rootSaga from './sagas';
export default function configureStore() {
const store = createStore(
createRootReducer(rootReducer),
{},
composeEnhancers(
applyMiddleware(
...
sagaMiddleware
)
)
);
sagaMiddleware.run(rootSaga);
return store;
}
Я что-то не так делаю? Или действия просто не доступны в node_modules? Как я уже сказал, когда я копирую / вставляю эту сагу в файл saga/index.js
, все работает отлично, но при перемещении в модуль node_module (и локальную символическую ссылку) я больше не могу получать какие-либо действия, даже когда я выполняю
takeEvery('*', function* execute(action) {
console.log('ACTION', action);
});
Я все еще не получаю никаких действий в модуле.