Select組件的OnChange一般只能拿到value的值,
onChange={(value)=>{console.log(value)}} //1 id
但是如果我們除了保存當前 option的id外,還要獲取對應的name時,如何處理呢?
方案一:
原理:通過將id和name拼接在value,onChange事件觸發時,就可以獲取到拼接好的值,保存時,通過 stringObject.split(separator,howmany) ,將字符串切割成字符串數組,再對應字段保存即可。
缺點:編輯的時候就有問題了,select選擇器,一般接口只會傳id,option沒有對應的value,顯示失敗。
方案二:
option還是按照平常的寫法
原理:在select中,加入labelInValue。
默認情況下 onChange
里只能拿到 value,如果需要拿到選中的節點文本 label,可以使用 labelInValue
屬性。
選中項的 label 會被包裝到 value 中傳遞給 onChange
等函數,此時 value 是一個對象。(copy手冊)
打印一下輸出