Преобразовать компонент класса в компонент функции - PullRequest
0 голосов
/ 22 февраля 2020

Я создал проект веб-приложения с React Redux и TypeScript. (В VS 2019).

Шаблонный проект был создан для меня с несколькими компонентами класса (Counter, WeatherForecast ....). Теперь я пытаюсь преобразовать компонент класса Counter - в компонент Function. На данный момент без успехов. Мне нужна помощь.

Компонент класса:

import * as React from 'react';
import { connect } from 'react-redux';
import { RouteComponentProps } from 'react-router';
import { ApplicationState } from '../store';
import * as CounterStore from '../store/Counter';

type CounterProps =
    CounterStore.CounterState &
    typeof CounterStore.actionCreators &
    RouteComponentProps<{}>;

class Counter extends React.PureComponent<CounterProps> {
    public render() {
        return (
            <React.Fragment>
                <h1>Counter</h1>

                <p>This is a simple example of a React component.</p>

                <p aria-live="polite">Current count: <strong>{this.props.count}</strong></p>

                <button type="button"
                    className="btn btn-primary btn-lg"
                    onClick={() => { this.props.increment(); }}>
                    Increment
                </button>
            </React.Fragment>
        );
    }
};

export default connect(
    (state: ApplicationState) => state.counter,
    CounterStore.actionCreators
)(Counter);

1 Ответ

0 голосов
/ 29 февраля 2020

Спасибо за ваш ответ. Я понял, как это сделать:

type CounterComponentProps =
     CounterStore.CounterState &
     typeof CounterStore.actionCreators &
     RouteComponentProps<{}>;

const Counter = (props: CounterComponentProps) => {

    return (
        <React.Fragment>

          <h1>Counter</h1>

          <p>This is a simple example of a React component.</p>

          <p aria-live="polite">Current count: <strong>{props.count}</strong></p>

          <button type="button"
                className="btn btn-primary btn-lg"
                onClick={() => { props.increment(); }}>
                Increment
          </button>
      </React.Fragment>
    );

};

export default connect(
    (state: ApplicationState) => state.counter,
    CounterStore.actionCreators)(Counter as any)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...