Использование createRef в реагировать на натуре с машинописью? - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь выяснить, как мне нужно использовать React.createRef() в реагировать нативно с машинописью, как следующие ошибки кода выдает

 // ...

  circleRef = React.createRef();

  componentDidMount() {
    this.circleRef.current.setNativeProps({
      someProperty: someValue
    });
  }

  // ...

В настоящее время следующие ошибки выбрасываются для this.circleRef.current.setNativeprops

[ts] Возможно, объект 'null'.(свойство) React.RefObject <{}>. current: {} |null

и

[ts] Свойство 'setNativeProps' не существует для типа '{}'.любой

есть идеи?

1 Ответ

0 голосов
/ 12 октября 2018

Первая проблема может быть решена с помощью нулевой проверки перед продолжением вашей логики, поскольку React.createRef() также может возвращать null:

componentDidMount() {
  if(this.circleRef !== null && this.circleRef.current !== null) {
    this.circleRef.current.setNativeProps({
      someProperty: someValue
    });
  }
}

Вторая проблема решается путем передачи имени класса узлаэлемент, для которого вы хотите создать ссылку.Например, если ваш ссылочный элемент - <Text>, выполните:

circleRef = React.createRef<Text>();

Таким образом, circleRef будет набран правильно и setNativeProps будет существовать тогда и только тогда, когда на него ссылаютсяКомпонент напрямую поддерживается собственным представлением :

Методы [из current] доступны в большинстве компонентов по умолчанию, предоставляемых React Native.Однако обратите внимание, что они недоступны для составных компонентов, которые напрямую не поддерживаются собственным представлением.Как правило, это включает большинство компонентов, которые вы определяете в своем приложении.- Прямое манипулирование - Реагируйте с собственной документацией

...