Javascript 重演传奇每一个不叫传奇的人
好的,从Hello World教程开始,我正在尝试构建一个非常简单的fetch调用。。。只是我的生成器函数从未执行过 相关代码如下所示,目前仅用于测试目的的控制台日志记录:Javascript 重演传奇每一个不叫传奇的人,javascript,redux,redux-saga,Javascript,Redux,Redux Saga,好的,从Hello World教程开始,我正在尝试构建一个非常简单的fetch调用。。。只是我的生成器函数从未执行过 相关代码如下所示,目前仅用于测试目的的控制台日志记录: export function* fetchData() { debugger; console.log('Fetching data'); } export function* fetchDataWatcher() { console.log("watching"); yield takeEvery('F
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
的结果签名取决于提交给它的最后一个函数,但我还是有点不清楚。。。有人能澄清发生了什么吗?试着用这种方式创建你的rootSaga
export default function * root () {
yield [
fetchDataWatcher()
]
}