1. 程式人生 > >React和Less錯誤解決集

React和Less錯誤解決集

React部分

Cannot read property ‘setState’ of null

具體錯誤

Uncaught TypeError: Cannot read property ‘setState’ of null

問題描述

使用ES6class 語法糖建立元件時, 在render 之前新增類內函式,如下:

onReset() {
......
}

這本身沒有毛病,但如果要使用this.setState() 時,控制檯報錯:Cannot read property ‘setState’ of null,列印此處的this ,得到的是null

解決方案

將之前的類內函式宣告改為函式表示式(ES6的方式),如下:

onReset = () => {
......
}

參考連結

Less部分

calc()函式計算結果不正確

描述

在less檔案中使用CSS原生的calc()函式,得出的結果錯誤,在less中 calc(100% - 4rem) 等帶單位混合運算會被less解析忽略單位,全部按照百分比計算,此例中的計算被less編譯成calc(96%)

原因分析

less的計算方式跟calc方法有重疊,兩者在一起有衝突

解決方案

更改calc()函式的形式

/*編譯錯誤的css:calc(100% - 4rem)*/
/*更改形式如下,以下兩種方法皆可*/
width:e("calc(100% - 4rem)"
);
width:calc(~"100% - 4rem");