n1croo
@n1croo
Front-end developer

Как правильно писать хандлер?

Первый вариант:
class FormContainer extends Component {
  constructor() {
    super()
    this.state = {
      seo_title: ''
    }
    this.handleChange = this.handleChange.bind(this)
  }

  handleChange(event) {
    this.setState({ [event.target.id]: event.target.value })
  }
  
  render() {
    const { seo_title } = this.state
    return (
      <form id="article-form">
        <Input
          text="SEO title"
          label="seo_title"
          type="text"
          id="seo_title"
          value={seo_title}
          handleChange={this.handleChange}
        />
      </form>
    )
  }
}

Второй вариант:
class FormContainer extends Component {
  state = {
    seo_title: ''
  }

  handleChange = event => {
    this.setState({ [event.target.id]: event.target.value })
  }

  render() {
    const { seo_title } = this.state
    return (
      <form id="article-form">
        <Input
          text="SEO title"
          label="seo_title"
          type="text"
          id="seo_title"
          value={seo_title}
          handleChange={this.handleChange}
        />
      </form>
    )
  }
}

  • Вопрос задан
  • 140 просмотров
Решения вопроса 2
rockon404
@rockon404 Куратор тега React
Frontend Developer
Второй вариант, негласный стандарт в React сообществе. Тут используется экспериментальный синтаксис babel-plugin-transform-class-properties.
Первый вариант предпочтительней, когда надо сделать наследование компонента, так как функции свойства класса не наследуются.
Ответ написан
Комментировать
EaGames
@EaGames
Front-end developer
правильно и так и так, есть кстати ещё варианты (тоже правильные).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы