【一知半解】Vue i-select 下拉列表無可選項

環境:

網頁中點擊“新增”按鈕會顯示“新增計劃”頁面,該頁面有兩個下拉列表框:
第一個:選擇計劃天數(對應變量:dayNumber)。
第二個:根據dayNumber變量提供天數的下拉選擇:第1天、第2天(對應變量planPeriod[index].startDay)。

問題:

如果第一次選擇了“計劃天數”,點擊“返回”按鈕(對應函數reload)返回後,再次選擇新增,則不能正確顯示下拉選項,都顯示“無匹配選項”。

如果第一次不選擇“計劃天數”,點擊“返回”按鈕直接返回,則一切正常。

代碼:

html如下

<i-form  ref="detailPlan" :model="planPeriod" :label-width="80"  v-for="(item,index) in planPeriod" >
	<Form-item label="時間" prop="startDay" style="align-items: flex-start;" label-width="80">
   	 	<i-select v-model="item.startDay" filterable>
        		<i-option v-for="index of fitbeeTrainingPlan.dayNumber" :value="index" :key="index">第{{index}}天
        		</i-option>
    		</i-select>
	</Form-item>
</i-form>

問題定位:

直接原因:

如果選擇了“計劃天數”,則“返回”後,fitbeeTrainingPlan.dayNumber="",planPeriod[0].startDay=""。

如果不選擇計劃天數,直接返回,則fitbeeTrainingPlan.dayNumber爲 undifined,planPeriod[0].startDay=1,這是在reload函數中的正常初始化。

未能定位出planPeriod[0].startDay和fitbeeTrainingPlan.dayNumber是何處被修改爲""的,reload函數運行結束時兩變量仍然正常,但是在界面上顯示時就不對了。

根本原因:

未定位。

規避方法:

在“新增”按鈕回調函數add中增加對planPeriod[0]的初始化。確保在新增頁面startDay,endDay有正確的初始值。如此則下拉選項可正確顯示。

vm.planPeriod = [{
   id:0,
   startDay: 1,
   endDay:1,
   actions:[{}]
}];
發佈了33 篇原創文章 · 獲贊 33 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章