как установить EventListener в триггер React Native, когда размер экрана или размера изменяется - PullRequest
0 голосов
/ 17 мая 2018

я использую

{ 
  React-Native : 0.55.4,
  React-Navigation: 2.0.1
}

теперь я хочу сделать отзывчивый просмотр в приложении React Native (для Android), например, я использую

 dimensions.get('window').width

для размера некоторого свойства

теперь, когда я изменяю размер экрана в Устройстве (ориентация (альбомная / книжная ориентация)) и когда это происходит, я запускаю какой-то обработчик для повторного рендеринга View и снова исходную таблицу стилей для нового значения измерений, передаваемого стилям

У меня есть2 р

в первом решении, когда я перерисовываю приложение в другой ориентации (альбомной / портретной), все работает хорошо, но если я меняю стили ориентации без изменений

, а во втором решении я создаю обработчик для набораEventListener в измерениях, а также попробуйте этот способ, чтобы установить Handler на -> onLayout

 handleLayout(event) {

    if (this.state.dimensions) return // layout was already called
    let {width, height} = event.nativeEvent.layout;
    this.setState({dimensions: {width, height}})

   }

и установить этот обработчик на мой Компонент

  <View  onLayout={this.handleLayout} />

, но когда я меняю ориентацию,получить эту ошибку

undefined is not an object (evaluating subscription.listener.apply )

и выдать эту ошибку при установке прослушивателя в componentDidMount

 Dimensions.addEventListener("change", this.changeStyle());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...