在 的示例 sagas 中react-boilerplate
,sagas 被导出为一个数组:
export function* defaultSaga() {
}
export default [
defaultSaga,
];
然后将默认值注入routes.js
:
...
injectSagas(sagas.default);
...
但是,当我添加一个新的身份验证路由时,我收到一个错误,saga argument must be a Generator function!
即使我只有默认的 sagas(与上面相同)。
我将路线添加到routes.js
:
//routes.js
export function authRoutes(store) {
//same code as createRoutes
}
Router
并导入了为in创建新路由的函数app.js
:
//app.js
const rootRoute = {
component: App,
childRoutes: createRoutes(store),
};
const authRoute = {
path: '/auth',
component: Auth,
childRoutes: authRoutes(store),
};
const routes = {
childRoutes: [rootRoute, authRoute],
};
当我尝试编辑默认值时sagas.js
:
export default function* root() {
yield [
defaultSaga(),
];
}
我得到一个错误injectAsyncSagas: Expected "sagas" to be an array of generator functions
。所以我所做的是将sagas.default
新路由包装在一个数组中:
//routes.js - authRoutes(store)
importModules.then(([reducer, sagas, component]) => {
injectReducer('login', reducer.default);
injectSagas([sagas.default]);
renderRoute(component);
});
为什么我会收到这些错误,我该如何解决?(我对 React 和 Generators 很陌生。)