操作<诺<任何>&GT;”不能分配给'MapDispatchToPropsParam <dispatchprops,any =“”>'类型的参数

时间:2017-09-15 20:04:06

标签: typescript react-redux

我正在使用react-redux和typescript但是我在连接方法中遇到错误。

[at-loader]中的错误./src/components/BodyCmp.tsx:43:73     TS2345:类型'(dispatch:any)=&gt;的参数()=&gt;作用&gt;”不能分配给'MapDispatchToPropsParam'类型的参数。   输入'(dispatch:any)=&gt; ()=&gt;作用&gt;”不能分配给'MapDispatchToPropsFactory'类型。     输入'()=&gt;作用&gt;”不能分配给'MapDispatchToProps'类型。       输入'()=&gt;作用&gt;”不能分配给'MapDispatchToPropsFunction'类型。         输入“操作&gt;”不能分配给'DispatchProps'类型。           “Action&gt;”类型中缺少属性“fetchData”。

[at-loader]中的错误./src/index.tsx:18:17     TS2322:类型'{}'不能分配给'IntrinsicAttributes&amp; IntrinsicClassAttributes&amp; Readonly&lt; {children?:ReactNode; }&GT; &安培; [R ...'。   类型“{}”不能分配给“Readonly”类型。     “{}”类型中缺少属性“数据”。 webpack:无法编译。

代码如下,提前致谢。

action.ts
---------------
export interface Action<T>{
    type:string;
    payload: T;
}


BodyCmp.tsx
------------------

import * as React from "react";
import { connect } from "react-redux";
import { bindActionCreators } from "redux";
import {fetchData} from "../Actions/userData"; 
import {store} from "../store/store";
import {Action} from "../models/action";

interface StateProps {
    data:Array<{}>;
}
interface DispatchProps {
  fetchData():Action<Promise<any>>;
}
type bodyProps = StateProps & DispatchProps;



function mapStateToProps(state:any):StateProps{
    return {
          data:state.dataReducer.data
    };
}

function mapDispatchToProps(dispatch:any){
  return bindActionCreators(fetchData, dispatch)
}


export class BodyCmp extends React.Component<bodyProps,any>{
    componentDidMount() {
        this.props.fetchData();
    }

    render(){
     console.log(this.props);
        return(
            <div>
                <h1>Bodyyyy</h1>
            </div>
        )
    }
}
export default connect<StateProps, DispatchProps, any>(mapStateToProps, mapDispatchToProps)(BodyCmp);

0 个答案:

没有答案