NativeScript Vue - установить фокус на TextField - PullRequest
0 голосов
/ 24 марта 2020

Я использую тестирование NativeScript ("nativescript-vue": "^2.5.0") на iOS 13

"tns-android": {
      "version": "6.0.0"
    },
    "tns-ios": {
      "version": "6.0.1"
    }

Пытаясь установить фокус на TextField при нажатии кнопки, в настоящее время она выглядит следующим образом

  <GridLayout dock="top" columns="auto,*,auto" width="70%" rows="auto,auto">
    <Label text.decode="&#xf2bd;" horizontalAlignment="left" row="0" rowSpan="2"  col="0" />
    <Label text="USER" horizontalAlignment="left" row="0" col="1" class="m-l-3" />
    <Label :text="userEditBtnText"  @tap="userEditTap()"  horizontalAlignment="right" row="0" rowSpan="2" col="2" class="btnEdit"/>
    <TextField ref="userid" text="@username" :editable="userEdit" horizontalAlignment="left" row="1" col="1" class="m-l-3"/>
  </GridLayout>           

и код для @ tap = "userEditTap ()"

userEditTap(){
  this.userEdit = true;
  this.userEditBtnText="SAVE";
  this.$refs["userid"].focus();      
}

и ошибка моей консоли:

JavaScript ошибка: файл: node_modules / @ nativescript / core / application / application. ios. js: 312: 26 JS ОШИБКА Ошибка: NativeScript обнаружил фатальную ошибку: TypeError: this. $ refs ["userid"]. focus не является функцией. (В 'this. $ Refs ["userid"]. Focus ()', 'this. $ Refs ["userid"]. Focus "не определено)

любой вход приветствуется!

1 Ответ

0 голосов
/ 24 марта 2020

Когда вы обращаетесь к ref, вы получаете доступ к элементу Vue, вам нужно будет вызвать .nativeView, чтобы получить доступ к фактическому TextField.

Должно быть,

this.$refs["userid"].nativeView.focus();      
...