加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – react-boilerplate sagas用于新路线

发布时间:2020-12-15 09:36:17 所属栏目:百科 来源:网络整理
导读:在反应 – 样板的样本传闻中,传奇被导出为一个数组: export function* defaultSaga() {}export default [ defaultSaga,]; 然后在routes.js中注入默认值: ...injectSagas(sagas.default);... 但是,当我添加一个新的身份验证路由时,我收到一个错误,说saga参
在反应 – 样板的样本传闻中,传奇被导出为一个数组:

export function* defaultSaga() {

}

export default [
  defaultSaga,];

然后在routes.js中注入默认值:

...
injectSagas(sagas.default);
...

但是,当我添加一个新的身份验证路由时,我收到一个错误,说saga参数必须是Generator函数!即使我只有默认的传奇(与上面相同).

我添加了到routes.js的路由:

//routes.js
export function authRoutes(store) {
  //same code as createRoutes
}

并导入该函数为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:预期“sagas”是一个生成器函数数组.所以我所做的是将sagas.default包装在数组中的新路径中:

//routes.js - authRoutes(store)
importModules.then(([reducer,sagas,component]) => {
  injectReducer('login',reducer.default);
  injectSagas([sagas.default]);
  renderRoute(component);
});

为什么我会收到这些错误,我该如何解决? (我对React和Generators很新.)

解决方法

哎呦.我忘了我在store.js中调用了store.runSaga(mySagas),当时我正在测试它接受一组生成器函数.我删除了它,错误消失了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读