将redux操作放在typescript类中进行反应

时间:2017-10-22 01:46:15

标签: reactjs typescript redux react-redux

我在类中有一些redux动作,如下例所示:

export class MyAction { 

  export const updateUserInfo = (uid: string, info: Profile) => {
   return {
            type: UserActionType.UPDATE_USER_INFO,
            payload: { uid, info }
          }
    }

  export const userInfo = (info: Profile) => {
    return {
             type: UserActionType.USER_INFO,
             info
           }
    }

 export const clearAllData = () => {
    return {
             type: UserActionType.CLEAR_ALL_DATA_USER
           }
    }
}

要在组件中使用此动作类,我需要创建一个对象,我需要在mapDispatchToProps()函数中使用这样的时间:

export class HomeHeader extends React.Component {

  _myAction: MyAction;  

  constructor(){
      this._myAction = new MyAction();
   }

}

// - Map dispatch to props
const mapDispatchToProps = (dispatch, ownProps) => {
  return {
    logout: () => dispatch(this._myAction.clearAllData()) // !!!!!
  }
}

export default connect(null,mapDispatchToProps)

问题是我无法访问_myAction,因为它在组件类中定义,并且对象将在构造函数中创建。当然有一些方法,但反模式不是我的情况。 如何将我的动作放在一个类中,并将其用于组件而不是反模式。

0 个答案:

没有答案