vant4 Picker选择器弹出层选中项不对?

背景:
技术栈:vue3+vant4
相关代码如下:

 <van-field
   v-model="fieldValue"
   is-link
   readonly
   label="城市"
   placeholder="选择城市"
    @click="showPicker = true"
   />
       <van-popup v-model:show="showPicker" round position="bottom">
             <van-picker :columns="columns" @cancel="showPicker = false" @confirm="onConfirm" />
            </van-popup>
const columns = [
    { text: '杭州', value: 'Hangzhou' },
    { text: '宁波', value: 'Ningbo' },
    { text: '温州', value: 'Wenzhou' },
    { text: '绍兴', value: 'Shaoxing' },
    { text: '湖州', value: 'Huzhou' },
  ];
  const fieldValue = ref('温州');
  const showPicker = ref(false);

  const onConfirm = ({ selectedOptions }) => {
    showPicker.value = false;
    fieldValue.value = selectedOptions[0].text;
  };

问题:

根据上面的例子,因为有初始值,比如上述例子中的温州,点开弹出层时显示选中的是列表中的杭州,和初始值温州不符,但是如果更改选择值,比如更改成绍兴,那么再次点击弹出层,弹出层显示选中的是列表中的绍兴,此时是正确的。问题是第一次初始化赋值,点击弹出层显示的好像是列表中的第一项

阅读 1.8k
1 个回答

van-fieldvan-picker是两个组件,这个fieldValue就只是显示选择的文字,改它的初始值没用,你要想给van-picker赋初始值应该用它的双向绑定

 <van-picker v-model="selectedValues" :columns="columns" @cancel="showPicker = false" @confirm="onConfirm" />
... ...
 const selectedValues = ref(['Wenzhou']);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题