2015-09-03 15 views
0

我一直偶爾遇到錯誤,其中使用了ReactJS + JSX,日誌文件類似於「 react-with-addons.js:9729 Uncaught TypeError:type.toUpperCase不是函數「。搜索StackOverflow,尤其是網絡,表明這是一個常見的bugbear。一個例子,從不需要的時候在大括號中包裹React類名的人,位於:React error "Uncaught TypeError: type.toUpperCase is not a function" on a hello world app來自ReactJS的英文翻譯:「react-with-addons.js:9729 Uncaught TypeError:type.toUpperCase不是函數」

我並不完全知道如何將這超出一個聲明,指出某些錯誤,某處或某個提示它是一個語法錯誤,而不是,例如,一個邏輯錯誤。我的搜索沒有找到可以直接從toUpperCase錯誤轉到特定區域的吸槍,或者搜索特定類型的語法錯誤,或者應用特定的啓發式算法或算法來搜索源代碼。有多方會證實類似的錯誤,但到目前爲止,我沒有在網上看過的人說過,「尤里卡!」

我的代碼非常多,在http://pastebin.com/e7mG3mir處有快照。我想在我的代碼中專門解決這個缺陷,但我更想知道如何繼續切斷和摧毀這個類似Hydra的類錯誤的頭部。

回答

0

我不確定一個「一般」解決方案,但我在React error "Uncaught TypeError: type.toUpperCase is not a function" on a hello world app處引用的問題是錯誤地處理了純JS中預期的JSX環境中的JSX;在這種情況下,我給了一個JSX標籤,我應該給出類名。

我的代碼是:

var pragmatometer = React.createElement(<Pragmatometer />, null); 

我想要的代碼是:

var pragmatometer = React.createElement(Pragmatometer, null); 

所以我不知道我有一個通用的解決方案,但如果(當)該錯誤發生再次,我的第一個端口將是我在使用(非嚴格JavaScript)JSX語法時所做的任何更改。

+0

ReactJS表示master中有一個更好的錯誤消息:https://github.com/facebook/react/issues/4791 – JonathanHayward

相關問題