如何在TypeScript中使用实验装饰器和协调类型?

问题描述 投票:1回答:1

我有以下基本组件

import * as React from 'react';
import { withRouter, RouteComponentProps } from 'react-router-dom';

export interface Props { };

@withRouter
export default class Movies extends React.PureComponent<Props> {
  goBack = () => {
    this.props.history.goBack();
  };

  public render() {
    return (
      <div>
        <button onClick={this.goBack}>Back</button>
      </div>
    );
  }
}

我希望withRouter能够在我的组件中注入特定的道具。但是,当引用this.props.history时,我得到了这个:

enter image description here

使用将添加类型定义的装饰器的适当方法是什么?

javascript typescript
1个回答
1
投票

我是这样做的:

import * as React from 'react';
import { withRouter, RouteComponentProps } from 'react-router-dom';

export interface OwnProps { };

type Props = OwnProps & RouteComponentProps<{}>;

@withRouter
export default class Movies extends React.PureComponent<Props> {
  goBack = () => {
    this.props.history.goBack();
  };

  public render() {
    return (
      <div>
        <button onClick={this.goBack}>Back</button>
      </div>
    );
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.