【发布时间】:2017-03-19 15:08:52
【问题描述】:
打字稿出错
ERROR in [at-loader] ./src/app/components/profile/userProfile/_userMain.tsx:130:37
TS2345: Argument of type 'typeof "/usr/src/app/src/js/src/app/redux/actions/sessionActions"' is not assignable to parameter of type 'ActionCreatorsMapObject'.
ERROR in [at-loader] ./src/app/components/profile/userProfile/_userMain.tsx:133:124
TS2345: Argument of type 'typeof UserProfileMain' is not assignable to parameter of type 'ComponentClass<(state: any) => any> | StatelessComponent<(state: any) => any>'.
Type 'typeof UserProfileMain' is not assignable to type 'StatelessComponent<(state: any) => any>'.
Type 'typeof UserProfileMain' provides no match for the signature '(props: ((state: any) => any) & { children?: ReactNode; }, context?: any): ReactElement<any>'
没有装饰器可以解决这个问题吗? (@connect)
interface IActions {
avatarUpload: (file:any) => void;
}
export interface IMainProps {
auth: number,
actions: IActions
}
class UserProfileMain extends React.Component<IMainProps, any> {
constructor(props:any){
super(props);
this.state ={
files: [],
}
}
render(){
return(<div />)
}
}
const mapStateToProps = (state:any):any => {
return {
auth: state.authStatus.data.user.id,
};
};
const mapDispatchToProps = (dispatch:any):any => {
return {
actions: bindActionCreators(sessionActions, dispatch) //First error (130:37)
};
}
export default connect<typeof mapStateToProps, typeof mapDispatchToProps, IMainProps>(mapStateToProps, mapDispatchToProps)(UserProfileMain); //second error (133:124)
已经尝试使用UserProfileMain as any,但遇到了其他一堆错误
也许你知道一些最佳实践
希望大家多多支持
【问题讨论】:
-
sessionActions 是在哪里定义的?你能展示一下吗?如果不查看所有代码,很难确定到底是哪里出了问题。
标签: reactjs typescript compiler-errors redux