我在类中有一些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
,因为它在组件类中定义,并且对象将在构造函数中创建。当然有一些方法,但反模式不是我的情况。
如何将我的动作放在一个类中,并将其用于组件而不是反模式。