React和Less錯誤解決集
阿新 • • 發佈:2019-01-28
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");