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!

推薦閱讀: