2015-04-12 89 views
25

我通過NPM安裝了React js,並使用browserify管理反應中的組件。當React發生異常時,控制檯顯示爲React - 發生異常異常

"Uncaught Error: Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."

如何啓用完整的錯誤消息?

+2

好吧,它告訴你,「使用非縮小的開發環境提供完整的錯誤信息和其他有用的警告。」 –

+0

我沒有直接在我的源代碼中引用React Js文件。我需要通過browserify進行反應,如var React = require('react'); 如何配置browserify使用非縮小版本? – Raathigesh

+2

這實際上是在有關使用與browserify反應的文檔的第一頁 - 您的'NODE_ENV'設置爲'production'嗎? –

回答

21

設置NODE_ENV,以發展爲本傑明Gruenbaum指出,在註釋中解決的問題。

set NODE_ENV=development 
+0

在gulpfile中,我執行'process.env.NODE_ENV ='development''但仍然獲得通用消息 – Labithiotis

+0

您可以嘗試執行'在命令提示符下設置NODE_ENV = development'並參見? – Raathigesh

+0

我在項目的基本目錄中的命令提示符下編寫了這個命令,但它似乎沒有效果(我正在使用Windows 7) – octavian

8

我最終解決了這個問題。

如果你和我一樣,該命令設置NODE_ENV RAN和它的字面從來沒有工作過,請檢查您是否要鏈接到react.min.js,而不是文件的完整版本。

鏈接到完整版本,它應該工作就像一個魅力。 :d

+1

你介意解釋你做了什麼來鏈接到完整版嗎?你是否需要('./ node_modules/react/dist/react.js')'? – kevin628

+0

在你的html中使用腳本標籤的src屬性,我沒有鏈接到完整版本,我使用的是生產版本。這是在我懂得如何使用涼亭之前,所以我不瞭解它們之間的區別。 – davidawad

7

如果使用JSPM捆綁你的代碼,請注意版本0.16.24進口陣營的精縮「生產」版本,這引發此錯誤。我的臨時解決方案是將jspm降級到0.16.23。

編輯熱蒙公司的未來版本將允許你申報的生產與開發版本(見jspm beta documentation

4

我有這個問題,對我來說我並不需要禁用縮小或使用反應源。我的腳本剛剛在根元素之前加載。所以我只是將腳本移出索引文件源代碼的頭部和下面的div,並修復它。

改變了我的index.jade從這個:

html 
head 
    title Super coo site 
    script(src="bundle.js") 
body 
    div#root 

要這樣:

html 
head 
    title Super coo site 
body 
    div#root 
    script(src="bundle.js") 
-1

我得到這個錯誤時,我的渲染方法返回undefined

render() { 
    let view; 
    // Not paying attention and slip a case where view won't get assigned a value 
    if(this.props.foo == 'hello') { 
     view = <HelloView /> 
    } 
    else if(this.props.foo == 'bye') { 
     view = <ByeView /> 
    } 
    return view; 
} 

這將觸發當this.props.foo是'hi'時的錯誤

+0

這是真的,檢查你是否在渲染函數中使用了一些尚未創建或未定義的變量,這是非常具有誤導性的錯誤信息,但這對我很有用 – Med7at

1

您是否檢查了您嘗試渲染的DOM元素?由於一個愚蠢的錯誤,我之前有過這個錯誤。最糟糕的是捆綁被縮小了。元素ID不一樣

的Index.html


<div id="ds-app"></div> 

app.jsx


React.DOM.render(<App/>, document.getElementById('app')) 

11

如果您遇到與噶+的WebPack這個問題,下面的WebPack配置固定運行時,我的問題測試:

plugins: [ 
    new webpack.DefinePlugin({ 
     'process.env': { 
      NODE_ENV: JSON.stringify('development') 
     } 
    }) 
] 
-2

我不認爲選擇的答案是完整的答案。雖然它可能適用於某些組件,但我在JSPM 0.16.36上遇到了同樣的問題,並且在我的某個組件上使用了生命週期方法shouldComponentUpdate,但刪除此方法可修復此問題。

0

version 15.2開始,生產React錯誤消息(NODE_ENV=production)現在包含一個URL,您可以在該URL中看到原始未混淆的錯誤。

https://twitter.com/dan_abramov/status/748969886433546240

你應該考慮升級,以獲得訪問這些錯誤消息的反應15.2。此外,您的一些生產崩潰報告工具automatically unminify these errors

+0

重要的是要指出,對於這個答案,他特別談論錯誤消息_在生產模式_,對此,確實是相關的。 – KendallB