Обрабатывать события ввода текста в React / React-Native кросс-платформенным способом?(e.target.value против e.nativeTarget.text) - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь повторно использовать как можно больше кода на разных платформах.У меня есть некоторые элементы input, которые я отображаю, которые отображаются одним и тем же элементом контейнера.

В React я обрабатываю это так:

  handleFieldChange(fieldName, evt) {
    const { formValues } = this.state;
    formValues[fieldName] = evt.target.value;  // This line differs
    this.setState({ formValues });
  }

Но в React Native:
evt.target - это число, и, похоже, единственный способ сделать это:

  handleFieldChange(fieldName, evt) {
    const { formValues } = this.state;
    formValues[fieldName] = evt.nativeTarget.text; // This line differs
    this.setState({ formValues });
  }

Можно ли использовать какой-либо код на разных платформах?

1 Ответ

0 голосов
/ 16 декабря 2018

Я предлагаю создать универсальный компонент InputField, который проверяет, какую платформу вы используете, и визуализирует соответствующий компонент, и в этом компоненте вы должны обрабатывать события в зависимости от платформы.Другие компоненты, которые будут использовать этот новый компонент, вообще не должны заботиться о платформе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...