如何使@connect decorator与redux-saga一起使用?

时间:2017-04-26 07:15:10

标签: javascript reactjs redux redux-saga

关于如何使用connect react-redux作为装饰者和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();
  }
}

1 个答案:

答案 0 :(得分:2)

redux-saga将redux actions 转换为副作用,而react-redux的connect将字段从 store中拉出并将它们作为道具展示给您的组件。

换句话说,您不需要直接将组件连接到redux-saga。相反,如果你没有使用redux-saga,就会产生动作。然后添加对这些行为做出反应的传奇并执行必要的副作用,在完成这些副作用时产生新的动作。您的Reducer应该处理更新状态的最终操作,这将触发connect并更新您的组件。