События касания Nativescript не работают в iOS с вкладками - PullRequest
0 голосов
/ 02 июля 2019

У меня есть простой TabView с двумя вкладками, каждая с одной кнопкой, событие касания на кнопке показывает странное поведение.

Если я просто выведу TabView напрямую, все события будут работать:

<GridLayout rows="*">
  <TabView row="0">
    <StackLayout *tabItem="{title: 'Tab 1'}">        
      <button background="red" (tap)="alert('Hello 1')"></button>  
    </StackLayout>
    <StackLayout *tabItem="{title: 'Tab 2'}">        
      <button background="red" (tap)="alert('Hello 2')"></button>  
    </StackLayout>
  </TabView>
</GridLayout>

Теперь, когда я показываю TabView условно после того, как приложение получает некоторые данные, я получаю неожиданное поведение:

 <TabView *ngIf="VarSetAfterServerResponse">
  ....

Событие Tap первой кнопки будет срабатывать только один или два раза, последняя кнопка будет продолжать работать.

Это упрощенный пример. Я получаю это на всех вкладках с более сложным содержимым, ни один из прослушивателей событий, установленных из HTML, не работает. EventListeners, прикрепленные из TypeScript, также не являются надежными, пытались установить тезисы во всех Angular LifeCycleEvents.

Это проблема только на iOS.

1 Ответ

0 голосов
/ 03 июля 2019

Кажется, что это ошибка в {N} Angular, вы можете сообщить о Github . В качестве обходного пути вы можете использовать visibility на TabView.

<TabView [visibility]="VarSetAfterServerResponse ? 'visible' : 'hidden'">
  ....
...