Задать вопрос

Как правильно пробрасывать эвенты в react?

Всем привет. Вот кручу react и в процессе изучения возник вопрос, как правильнее пробрасывать эвенты ? На данный момент мне ничего умнее приведенного ниже кода в голову не пришло …
const MySuperInput = React.createClass({
  render: function () {
    const attr = { type: this.props.type };
    attr[this.props.eventName] = this.props.eventHandler;
    return React.createElement("input", attr);
  }
});

const MySuperComponent = React.createClass({
  _handle: function (e) {
    //какой-то обработчик
  },
  render: function () { 
    return <MySuperInput type="text" eventName="onChange" eventHandler={this._handle}/>
  }
});
  • Вопрос задан
  • 494 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
Laiff
@Laiff
Front-end developer
Примерно таким образом:
class Input {
  render() {
    return <input {...props} />
  }
}

class MyComponent extends Component {
  constructor(props) {
    super(props);

    this.state = {};
  }

  handleChange = e => {
    this.setState({e.target.value});
  }

  render() {
    return <Input type="text" onChange={this.handleChange} value={this.state.value} />
  }
}


И рекомендую прочитать про ValueLink https://facebook.github.io/react/docs/two-way-bind...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы