默认先显示请选择XXX。然后点击弹出选择列表。如果默认value是0的话,他就直接默认显示数组的第一个了。 <picker mode="selector" :value="planIndex" :range="planStatus" range-key="label" @change="bindPlanChange"> <view class="picker flex-row-space-between"> <text class="status">{{ planIndex!='' ? planStatus[planIndex]?.label : '请选择' }}</text> </view> </picker>
const planIndex=ref('');//试了默认给了-1.结果点开选项列表第一个之前多了一个空的选项。改成空字符。点开就是正确的。
const planStatus = reactive([
{ label: "生效", value: 0 },
{ label: "完结", value: 1 },
{ label: "中断", value: 2 },
]);
const bindPlanChange=(e)=>{ planIndex.value=e.detail.value; }
planIndex是选中的下标。默认如果数组没有-1.你让他默认等于-1以达到显示请选择的字样。结果就会导致弹框变成这样的状态。