在打字稿中反应Hoc Component Decorator

时间:2019-03-22 06:45:37

标签: reactjs typescript

我希望作为装饰器的HOC组件像这样进行登录检查:

function Login() {
  return (Component) => {
    return class Login extends Component {
      componentDidMount() {
        console.log('doSometing')
        super.componentDidMount()
      }
      render () {
        return super.render()
      }
    }
  }
}

export default Login
import * as React from 'react';
import './App.css';
import withLogin from './login'

import logo from './logo.svg';

@withLogin()
class App extends React.Component {
  public render() {
    return (
      <div className="App">
        <header className="App-header">
          <img src={logo} className="App-logo" alt="logo" />
          <h1 className="App-title">Welcome to React</h1>
        </header>
        <p className="App-intro">
          To get started, edit <code>src/App.tsx</code> and save to reload.
        </p>
      </div>
    );
  }
}

export default App;

但是出现Typescript错误:

  

(7,1):当被调用时,无法解析类装饰器的签名   表达式。
类型'typeof登录名'不能分配给类型'typeof   应用”。       
类型“登录”缺少类型“应用”中的以下属性:上下文,setState,forceUpdate,props和另外2个。

0 个答案:

没有答案
相关问题