weex 中Android的v-model双向绑定 输入第一个字符时无响应

RE_Developer
  • 30

html

...
 <input ref="name_input" type="text" class="inputField" placeholder ="请输入用户名" v-model="input_username"/>
...

script

...
data:function(){
    return {
       input_username:'',
    }
}
...

现象:
在iOS和Web中访问值绑定正常,
但在Android中运行时,
输入第一个字符时 input_username 的值不随输入框内容改变,
输入第二个字符(或删除第一个字符)后绑定状态改变正常

例如
输入框:a ----> input_username:''
输入框:ab ----> input_username:'ab'

问题:
请问一下这里应该如何适配Android平台

回复
阅读 3.8k
5 个回答

关于Android中第一次v-model/@input不响应的问题,发现问提出现在下面这段代码:

原因

WXInput的父类AbstractEditComponent类中, mIgnoreNextOnInputEvent 这个变量在组件初始化的时候被设置为了TRUE,导致了第一次输入input内容显示不出来,原因如下:

在onTextChanged方法里面,这段代码阻止了事件的发送

if (mIgnoreNextOnInputEvent) {
    mIgnoreNextOnInputEvent = false;
    return;
}

解决

将这段代码注释掉就可以在input/v-model中获取第一次输入的值了

疑问

不知道官方这个变量的目的是什么

楼主解决了吗?我也遇到这个问题了。

刚刚watch这个属性,在Android上没发现有问题。提供下具体实例代码以及使用版本。

好像在 Android 上的确有这个问题,我写了个例子
http://dotwe.org/vue/edc56949...

只有在输入第一个字符时才会出现这个问题。

测试环境是:

Weex SDK Version: 0.13.1.9
JS Framework Version: 0.20.9
platform: android
osVersion: 7.1.1
appGroup: AliApp
appName: TB
appVersion: 6.9.0
deviceModel: MI 6
deviceWidth: 1080
deviceHeight: 1920

图片描述

weex_sdk0.18.0依然没有解决,我也是呵呵了,太不负责任了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏