uni-app textarea 真机测试双向绑定失效
uni-app textarea 真机测试双向绑定失效
示例代码:
<view>
<view class="evaluate-con" v-for="(itemall,idx) in orderCon" :key='idx'>
<view class="goodsStyle acea-row row-between" >
<view class="pictrue">
<image :src="itemall.productInfo.image" class="image" />
</view>
<view class="text acea-row row-between">
<view class="name line2 font-color-black">{{itemall.productInfo.storeName}}</view>
</view>
</view>
<starall name='描述相符' v-model="submitdata.productEvaluateParams[idx].productScore"/>
<view class="score">
<view class="textarea">
<textarea
:data-idx = 'idx'
@input='changesall($event,idx)'
placeholder="从多个角度评价商品,可以帮助更多想买的人"
:maxlength="300"></textarea>
<view class="list acea-row row-middle">
<scroll-view scroll-x="true" class="scrollpictrue">
<view class="pictrue uploadBnt acea-row row-center-wrapper row-column" @click.stop="chooseImageall(idx)">
<text class="iconfont icon-icon25201"></text>
<view>发布买家秀</view>
</view>
<view class="pictrue"
v-for="(item, uploadPicturesIndex) in submitdata.productEvaluateParams[idx]['pics']"
:key="uploadPicturesIndex">
<image :src="item" />
<text class="iconfont icon-guanbi1 font-color-brown" @click.stop="delall(uploadPicturesIndex,idx)"></text>
</view>
</scroll-view>
</view>
</view>
</view>
</view>
<view class="starall">
<starall name='服务态度' v-model="submitdata.serviceScore"/>
</view>
<view class="evaluate-btnview"></view>
<view class="evaluate-btn">
<view class="evaluateBnt bg-color-brown" @click="submit">发布</view>
</view>
</view>
操作步骤:
<view>
<view class="evaluate-con" v-for="(itemall,idx) in orderCon" :key='idx'>
<view class="goodsStyle acea-row row-between" >
<view class="pictrue">
<image :src="itemall.productInfo.image" class="image" />
</view>
<view class="text acea-row row-between">
<view class="name line2 font-color-black">{{itemall.productInfo.storeName}}</view>
</view>
</view>
<starall name='描述相符' v-model="submitdata.productEvaluateParams[idx].productScore"/>
<view class="score">
<view class="textarea">
<textarea
:data-idx = 'idx'
@input='changesall($event,idx)'
placeholder="从多个角度评价商品,可以帮助更多想买的人"
:maxlength="300"></textarea>
<view class="list acea-row row-middle">
<scroll-view scroll-x="true" class="scrollpictrue">
<view class="pictrue uploadBnt acea-row row-center-wrapper row-column" @click.stop="chooseImageall(idx)">
<text class="iconfont icon-icon25201"></text>
<view>发布买家秀</view>
</view>
<view class="pictrue"
v-for="(item, uploadPicturesIndex) in submitdata.productEvaluateParams[idx]['pics']"
:key="uploadPicturesIndex">
<image :src="item" />
<text class="iconfont icon-guanbi1 font-color-brown" @click.stop="delall(uploadPicturesIndex,idx)"></text>
</view>
</scroll-view>
</view>
</view>
</view>
</view>
<view class="starall">
<starall name='服务态度' v-model="submitdata.serviceScore"/>
</view>
<view class="evaluate-btnview"></view>
<view class="evaluate-btn">
<view class="evaluateBnt bg-color-brown" @click="submit">发布</view>
</view>
</view>
预期结果:
- 双向绑定有值
实际结果:
- 双向绑定无值
bug描述:
- textarea 真机测试双向绑定失效
更多关于uni-app textarea 真机测试双向绑定失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app textarea 真机测试双向绑定失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在uni-app中,textarea组件在真机上的双向绑定确实存在一些已知问题。从你的代码来看,问题可能出现在以下几个方面:
-
v-model在真机上的兼容性问题:你使用的是
@input事件手动处理数据绑定,但真机上可能存在事件触发时机的问题。 -
数据更新机制:建议修改
changesall方法,确保数据正确更新:
changesall(e, idx) {
// 使用$set确保响应式更新
this.$set(this.submitdata.productEvaluateParams[idx], 'comment', e.detail.value)
// 或者使用直接赋值
// this.submitdata.productEvaluateParams[idx].comment = e.detail.value
// this.$forceUpdate() // 如果需要强制更新
}
-
初始化数据检查:确保
submitdata.productEvaluateParams数组中的每个对象都包含comment字段,且初始值不为空。 -
替代方案:可以尝试使用
@blur事件替代@input,在真机上可能更稳定:
<textarea
:data-idx='idx'
@blur='changesall($event,idx)'
:value="submitdata.productEvaluateParams[idx].comment"
placeholder="从多个角度评价商品,可以帮助更多想买的人"
:maxlength="300">
</textarea>

