Redux Connect的打字稿约束

时间:2018-08-17 04:58:24

标签: reactjs typescript react-redux

使用打字稿作为语言的反应,我已经声明了一个带有约束的类。我需要对其应用connect方法

import * as React from 'react';
import { connect } from 'react-redux';
import { initAskadeFiles } from '../Entities/Askade/Askade.Actions';
import { Dispatch } from 'redux';

interface IProp<T> {
    PropOne: T
}
interface IState<T> {
    StateOne: T
}
class BaseEdit<T> extends React.Component<IProp<T>, IState<T>> {

}
export function mapDispatchToProps(dispatch: Dispatch, ownProps: any) {
    return {
        InsertItem: () => dispatch(initAskadeFiles())
    }
}
export default connect(null, mapDispatchToProps)(BaseEdit);

在下面的调用组件中是语法

import * as React from 'react';
import BaseEditSample from './BaseEditSample';
import { City } from '../Components/GridFunctionality/City';

export class ComplexEditSample extends React.Component {
    public render(): any {
        <BaseEditSample<City> />
    }
}

当我使用传递City的语法时,出现错误

我在这个方面缺少什么,我需要redux与约束一起连接到该组件?谢谢

  

[ts]预期0个类型参数,但得到1个。

1 个答案:

答案 0 :(得分:1)

首先,您可以将操作直接传递给连接,而无需使用mapDispatchToProps,如下所示:

export default connect(mapStateToProps, { state, actions })(Component);`

然后在您的组件中使用导入的动作和状态:

type ComponentProps = {state, actions};

export default class Component extends React.Component<ComponentProps> {

render() {
  const {
    data,
    actions,             
  } = this.props

  return (...)
}