element ui時間日期選擇器el-date-picker報錯Prop being mutated:"placement"解決方式
發現錯誤
這兩天在寫新項目的時候,遇到瞭element ui 時間日期選擇器一直報錯
[Vue warn]: Avoid mutating a prop directly since the value will be
overwritten whenever the parent component re-renders.
Instead, use a data or computed property based on the prop's value.
Prop being mutated: "placement"
這個報錯並沒有影響實際操作,但是看著很難受
解決
根據報錯顯示是element ui data-picker 下的picker文件報錯的,我這邊在node_modules 中找到這個vue文件發現
props值中有加一個placement: Popper.props.placement,
created的時候 placement 有個賦值操作 this.placement = PLACEMENT_MAP[this.align] || PLACEMENT_MAP.left;這樣就導致瞭報錯
老項目沒有報錯是因為版本中props中沒有placement,隻有created的時候 placement 有個賦值操作,所有不會有報錯
因為我的這個bug報錯隻在 2.15.9 中有。並沒有影響實際操作看不過error 報錯的可以將版本降至 2.15.9以下就可以瞭
公司項目都是用的2.12版本的,所以直接npm install [email protected] -s
可以看看element ui git https://github.com/ElemeFE/element/issues/21905
剛開始報錯的時候還沒有意識到版本問題,後來老項目看到node_modules 中picker.vue 和現在用的不一樣的時候才發現是版本問題,本身我的package.json裡面element ui顯示的版本是2.12的
因為安裝其他東西出現問題把package-lock.json 和node_modules 都刪瞭,然後npm install 結果坑的是package.json版本和實際安裝的不是一個版本,不然不會出現這個問題
還是需要單獨npm install [email protected] -s
啊,又是被坑的一天,對你有幫助記得點個贊
補充:el-date-picker 初始化報錯
在點擊el-date-picker組件自帶的
x初始化後,提交數據報錯
Error in event handler for “click”: “TypeError: Cannot read property ‘0’ of null”
Cannot read property ‘0’ of null
因為我當前的類型是daterange是個數組
,他默認初始化是為0所有會報類型錯誤,而且default-time並不會將其代替,所有 需要手動解決一下,在組件上先判斷一下,當前是否為null ,如果是0就返回一個空數組,如果不是0就返回當前數據
v-if="timeRange === null ? timeRange = [] : timeRange = timeRange"
總結
到此這篇關於element ui時間日期選擇器el-date-picker報錯Prop being mutated:"placement"解決的文章就介紹到這瞭,更多相關element ui時間日期選擇器報錯內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 移動端Vue2.x Picker的全局調用實現
- 關於element ui的菜單default-active默認選中的問題
- element中TimePicker時間選擇器禁用部分時間(顯示禁用到分鐘)
- 解決element DateTimePicker+vue彈出框隻顯示小時
- ElementUI時間選擇器限制選擇范圍disabledData的使用