让简单的史诗在 redux-observable 中工作

Getting simple epic working in redux-observable

尝试使用 redux-observable 但 运行 实现我的第一个简单 epic 分为两个问题:

  1. 在我达到我的断点后,我得到一个错误 "Cannot read property 'closed' of undefined" 然后我没有在我的 epic 中达到断点 - 见下文
  2. 一旦我点击 epic,我想 dispatch myAction 这是一个动作创作者。不确定如何添加 dispatch。最初,我没有添加任何东西并得到了 dispatch not defined 错误。然后我注意到我的 IDE 自动添加了 import { dispatch } from 'rxjs/internal/observable/pairs';。不确定这是否是将 dispatch 添加到我的 epic 的方法。这也可能是错误的原因。

当触发特定操作时,我最初点击 epic 的事实告诉我它已成功添加到中间件管道中,但显然有些地方不对。

我的史诗是这样的:

import { Observable } from 'rxjs';
import { ofType } from 'redux-observable';
import { filter, map, mapTo } from 'rxjs/operators';
import { dispatch } from 'rxjs/internal/observable/pairs'; // ??? Is this how I access dispatch?

import * as types from '../../actions/action-types';
import { myAction} from '../../actions/my-actions';

export const mySimpleEpic = (action$, state$) => action$.pipe(

    ofType(types.SOMETHING_HAS_HAPPENED),
    map(() => {
        debugger
        dispatch(myAction("Hello World!"))
    })
)

我做错了什么?

Epics 不 dispatch 行动,他们 emit 行动。 redux-observable 负责调度从您的 epics 发出的操作。基本的史诗结构应该是这样的:

export const mySimpleEpic = action$ => 
    action$
    .ofType(types.SOMETHING_HAS_HAPPENED)
    .map(() => myAction("Hello World!"));