O problema de que a ligação bidirecional de entrada do uniapp não pode obter o valor no lado do APP
No uniapp, use o v-model de entrada para ligação de dados. Quando o método de entrada não é determinado, a caixa de entrada exibe um valor, mas a variável vinculada dinamicamente não pode obter o valor correspondente. Neste momento, se você deseja enviar dados ou algo assim, você descobrirá que está sempre vazio
No caso da imagem acima, o usuário não escolheu o inglês correspondente. Se você pressionar salvar diretamente, descobrirá que não consegue obter os dados, mas a página exibe os dados (existentes em alguns celulares e iOS)
A solução para esse problema é adicionar um cronômetro ao acionador do método salvar e perder o foco
1. A primeira etapa é definir dinamicamente o atributo fcous na entrada
2. Remova o foco ao clicar em salvar e adicionar um cronômetro
O código completo contém meus próprios componentes empacotados, então não posso usar diretamente os componentes do modelo, apenas retirar a entrada.
<template>
<view class="content">
<c-label label="input输入的值">
<text>{
{val}}</text>
</c-label>
<c-label label="input">
<input type="text" value="" v-model="val" :focus="isFocus" placeholder="请输入"/>
</c-label>
<view class="m30">
<c-button type="default" round="" @click="save">确定</c-button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
val : '',
isFocus : false,
timer : null,
};
},
async onLoad() {
},
methods: {
save(){
/* 取消焦点 */
this.isFocus = false;
/* 添加定时器 */
clearTimeout(this.timer);
this.timer = setTimeout(()=>{
// 逻辑操作
},300)
}
},
async onShow() {
const that = this;
/* 登录操作处理 */
// this.$store.dispatch('login/checkLogin')
},
async onReady() {
}
};
</script>
<style lang="scss">
</style>