Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 对新路线的样板故事作出反应_Reactjs_Generator_React Router Redux_Redux Saga_React Boilerplate - Fatal编程技术网

Reactjs 对新路线的样板故事作出反应

Reactjs 对新路线的样板故事作出反应,reactjs,generator,react-router-redux,redux-saga,react-boilerplate,Reactjs,Generator,React Router Redux,Redux Saga,React Boilerplate,在react样板文件的样例传奇中,传奇作为数组导出: export function* defaultSaga() { } export default [ defaultSaga, ]; //routes.js - authRoutes(store) importModules.then(([reducer, sagas, component]) => { injectReducer('login', reducer.default); injectSagas([sag

react样板文件的样例传奇中,传奇作为数组导出:

export function* defaultSaga() {

}

export default [
  defaultSaga,
];
//routes.js - authRoutes(store)
importModules.then(([reducer, sagas, component]) => {
  injectReducer('login', reducer.default);
  injectSagas([sagas.default]);
  renderRoute(component);
});
然后将默认值注入
routes.js

...
injectSagas(sagas.default);
...
//routes.js
export function authRoutes(store) {
  //same code as createRoutes
}
//app.js
const rootRoute = {
  component: App,
  childRoutes: createRoutes(store),
};

const authRoute = {
  path: '/auth',
  component: Auth,
  childRoutes: authRoutes(store),
};

const routes = {
  childRoutes: [rootRoute, authRoute],
};
然而,当我添加了一个新的身份验证路由时,我得到了一个错误,即saga参数必须是一个生成器函数即使我只有默认的传奇(同上)

我将路由添加到
routes.js

...
injectSagas(sagas.default);
...
//routes.js
export function authRoutes(store) {
  //same code as createRoutes
}
//app.js
const rootRoute = {
  component: App,
  childRoutes: createRoutes(store),
};

const authRoute = {
  path: '/auth',
  component: Auth,
  childRoutes: authRoutes(store),
};

const routes = {
  childRoutes: [rootRoute, authRoute],
};
并在
app.js
中导入了为
路由器创建新路由的功能:

...
injectSagas(sagas.default);
...
//routes.js
export function authRoutes(store) {
  //same code as createRoutes
}
//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(),
  ];
}
我得到一个错误:预期“sagas”是一个生成器函数数组。因此,我所做的是将sagas.default封装在数组中的新路由中:

export function* defaultSaga() {

}

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

为什么我会出现这些错误?我如何修复它们?(我对反应和发电机还不太熟悉。)

哎呀。我忘了在测试接受一系列生成器函数的函数时,我在
store.js
中调用了
store.runSaga(mySagas)
。我删除了它,错误消失了