redux-saga-beginner-tutorial
redux-saga-beginner-tutorial copied to clipboard
saga argument must be a Generator function! error
I have code that was working fine until I upgrade the okta-react to 3.0.1 and now I am getting this weird error runSaga(options, saga, ...args): saga argument must be a Generator function!
10 | export const store = createStore(rootReducer, getInitialState(), composeWithDevTools(applyMiddleware(sagaMiddleware)));
11 |
> 12 | sagaMiddleware.run(rootSaga);
| ^
and my root saga is
export const rootSaga = function* root() { yield all([ fork(watchNewGeneratedNetworkRequestStart), fork(watchGetRefsStartSaga), fork(watchCommercialOrderSearch), fork(watchSessionNetworkSaga), fork(watchMissingCopySearch), fork(watchMissingCopyRefSaga), fork(watchAddInstruction), fork(watchMediaSearches), fork(watchLockSagas), fork(watchSharedCommercialOrderSearch), fork(watchMultiOrderInstructionSagas), fork(watchLogPageSagas), ]); };
any idea why I started having this errors after the update?
Hi, Sean
If you remove default
from export default function* rootSaga()
line in your sagas.js this error should go away.
Don't ask why, I'm in the very beginning of the journey to javascript wonderland =)
Oh, just realized that this is your rootSaga below the code snippet (looks like some stack trace =)
I'd suggest replacing export const rootSaga = function* root() {
with export function* rootSaga() {
I got the same error while I was following this tutorial from redux-saga doc https://redux-saga.js.org/docs/introduction/BeginnerTutorial#making-asynchronous-calls
Any solution/explanation please ?
Make sure your generator function is written with the space before the asterisk:
export function *helloSaga() {
and NOT with the space after the asterisk:
export function* helloSaga() {