In der Beispiel sagas von react-boilerplate
werden sagas als Array ausgeführt:für neue Route
export function* defaultSaga() {
}
export default [
defaultSaga,
];
Der Standard dann in routes.js
injiziert wird:
...
injectSagas(sagas.default);
...
Wenn jedoch I hinzugefügt eine neue Route für die Authentifizierung, bekomme ich eine Fehlermeldung, die saga argument must be a Generator function!
sagt, auch wenn ich nur die Standard-Sagas (das gleiche wie oben).
Ich fügte hinzu, um die Strecke zu routes.js
:
//routes.js
export function authRoutes(store) {
//same code as createRoutes
}
und importiert die Funktion eine neue Route für die Router
in app.js
zu erstellen:
//app.js
const rootRoute = {
component: App,
childRoutes: createRoutes(store),
};
const authRoute = {
path: '/auth',
component: Auth,
childRoutes: authRoutes(store),
};
const routes = {
childRoutes: [rootRoute, authRoute],
};
Wenn ich die Standardeinstellung sagas.js
zu bearbeiten versuchen :
export default function* root() {
yield [
defaultSaga(),
];
}
I Fehler erhalten injectAsyncSagas: Expected "sagas" to be an array of generator functions
. Also, was ich tat, war sagas.default
in der neuen Route in einem Array zu wickeln:
//routes.js - authRoutes(store)
importModules.then(([reducer, sagas, component]) => {
injectReducer('login', reducer.default);
injectSagas([sagas.default]);
renderRoute(component);
});
Warum erhalte ich diese Fehler immer und wie kann ich sie lösen? (Ich bin ziemlich neu zu reagieren und Generatoren.)