Typescript 行动<;承诺<;任何>&燃气轮机';不可分配给类型为';MapDispatchToPropsParam<;调度道具,任何>';
我将react-redux与typescript一起使用,但在connect方法中出现错误 [at loader]中出错。/src/components/BodyCmp.tsx:43:73 TS2345:类型为“(dispatch:any)=>()=>Action>”的参数不能分配给类型为“MapDispatchTopPropSparam”的参数。 类型“(分派:任何)=>()=>操作>”不可分配给类型“MapDispatchTopPropsFactory”。 类型“()=>操作>”不可分配给类型“MapDispatchToProps”。 类型“()=>Action>”不可分配给类型“MapDispatchTopPropsFunction”。 类型“Action>”不可分配给类型“DispatchProps”。 类型“Action>”中缺少属性“fetchData” [at loader]中出错。/src/index.tsx:18:17 TS2322:类型“{}”不可分配给类型“IntrinsicatAttributes&IntrinsicClassAttributes&Readonly&R…”。 类型“{}”不可分配给类型“Readonly”。 类型“{}”中缺少属性“data”。 网页包:未能编译 代码如下,提前感谢Typescript 行动<;承诺<;任何>&燃气轮机';不可分配给类型为';MapDispatchToPropsParam<;调度道具,任何>';,typescript,react-redux,Typescript,React Redux,我将react-redux与typescript一起使用,但在connect方法中出现错误 [at loader]中出错。/src/components/BodyCmp.tsx:43:73 TS2345:类型为“(dispatch:any)=>()=>Action>”的参数不能分配给类型为“MapDispatchTopPropSparam”的参数。 类型“(分派:任何)=>()=>操作>”不可分配给类型“MapDispatchTopPropsFactory”。 类型“()=>操作>”不可分配给类
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);
action.ts
---------------
导出接口操作{
类型:字符串;
有效载荷:T;
}
BodyCmp.tsx
------------------
从“React”导入*作为React;
从“react redux”导入{connect};
从“redux”导入{bindActionCreators};
从“./Actions/userData”导入{fetchData};
从“./store/store”导入{store};
从“./models/Action”导入{Action};
接口状态道具{
数据:数组;
}
界面分派道具{
fetchData():操作;
}
bodyProps类型=StateProps和DispatchProps;
函数mapStateToProps(状态:any):StateProps{
返回{
数据:state.dataReducer.data
};
}
函数mapDispatchToProps(调度:任何){
返回bindActionCreators(获取数据、分派)
}
导出类BodyCmp扩展React.Component{
componentDidMount(){
this.props.fetchData();
}
render(){
console.log(this.props);
返回(
Bodyyy
)
}
}
导出默认连接(mapStateToProps、mapDispatchToProps)(BodyCmp);
你有没有想过这一点?