好的,从https://redux-saga.js.org/docs/introduction/BeginnerTutorial.html的Hello教程开始,我正在尝试构建一个非常简单的获取调用.只是我的生成器功能永远不会被执行。
相关代码如下所示,目前只用于测试目的的控制台日志记录:
export function* fetchData() {
debugger;
console.log('Fetching data');
}
export function* fetchDataWatcher() {
console.log("watching");
yield takeEvery('FETCH_REQUESTED', fetchData);
}
// single entry point to start all Sagas at once
export default function* rootSaga() {
yield all([
fetchDataWatcher()
]);
}当然,我在index.js中实现了样板
import rootSaga from './sagas';
...
const sagaMiddleware = createSagaMiddleware();
...
const enhancers =
compose(
window.devToolsExtension ? window.devToolsExtension() : f => f,
applyMiddleware(sagaMiddleware)
);
const store = createStore(
combineReducers({
...
}),
defaultState,
enhancers
);
sagaMiddleware.run(rootSaga);在浏览器控制台中,我看到一个“监视”,但是当我发出一个动作时
{
type: 'FETCH_REQUESTED'
}通过Redux的devtools,我希望调试器停止我的代码并逐步执行fetchData函数.但什么都没发生。
我肯定我错过了一些很简单的东西-你能帮我吗?
编辑:
结果,如果我把devTools增强器移到compose的末尾,一切都很好。
const enhancers =
compose(
applyMiddleware(sagaMiddleware),
window.devToolsExtension ? window.devToolsExtension() : f => f
)现在我知道compose的最终签名取决于提交给它的最后一个函数,但这对我来说还有点不清楚……有人能澄清这是怎么回事吗?
发布于 2017-07-06 14:51:55
尝试以这种方式创建rootSaga
export default function * root () {
yield [
fetchDataWatcher()
]
}https://stackoverflow.com/questions/44946758
复制相似问题