如何使 @connect 装饰器与 redux-saga 一起工作?

How to make @connect decorator work with redux-saga?

关于如何结合使用 react-redux 中的 connect 作为装饰器与 redux-saga 有什么好的做法吗?

import React from 'react';
import { connect } from 'react-redux'

@connect(({ data }) => ({ data }), require('../models/effects').default)
export default class User extends React.Component {
  onClick() {
    console.log('on click.');
    // how to make redux-saga work here?
    this.props.action1();
  }
}

redux-saga 将 redux actions 变成副作用,而 react-redux 的 connect 将字段从 store 并将它们作为道具公开给您的组件。

换句话说,你不需要将你的组件直接连接到 redux-saga。相反,如果您不使用 redux-saga,则像您一样生成操作。然后添加对这些动作作出反应的 sagas 并执行必要的副作用,当这些副作用完成时产生新的动作。您的减速器应该处理那些更新状态的最终操作,这将触发 connect 并更新您的组件。