2016-07-10 5 views
2

は私がundefinedアクセスしようとするたび+ ES6バベルは、次のエラーメッセージを吐くリアクト(例を。person.ageをしようとしているperson === undefined。)私はimportの文の入力を間違えた場合や、Iミスをしたときにもっと便利なエラーメッセージを表示するには?

enter image description here

これがまた起こりますpropsオブジェクトを破棄します。たとえば、次のような間違いをする可能性があります。

const { name, age } = this.props.person 
// but `this.props.person` only has a `name` property. 

このようなエラーメッセージの欠落は苦痛です。私が設定することを忘れたいくつかのオプションがありますか?誰もこの問題にどのように対処していますか?

答えて

1

これは非常に要求されている機能であり、おそらく次のReactバージョンで実装される予定です。今のところはredbox-reactです。私が知る限り、react-transform-catch-errorsは推奨されません。

/* global __DEV__ */ 
import React from 'react' 
import { render } from 'react-dom' 
import App from './components/App' 

const root = document.getElementById('root') 

if (__DEV__) { 
    const RedBox = require('redbox-react').default 
    try { 
    render(<App />, root) 
    } catch (e) { 
    render(<RedBox error={e} />, root) 
    } 
} else { 
    render(<App />, root) 
} 
+0

'反応-変換キャッチerrors'全ての賛成で廃止され'-redbox'に反応しているようだ '反応するホットloader'が、私はまだreact-'適用した後に非友好的なエラーが発生しますホットローダー ' –

+0

redbox-reactは私にとって完璧に機能します。 webpack configに 'output.devtoolModuleFilenameTemplate = '/ [resource-path]''を追加してみてください - https://github.com/KeywordBrain/redbox-react#sourcemaps-with-webpack –

0

はい、これは迷惑です。役立つ1つの方法は、すべてのReactコンポーネントのレンダリングメソッドをtry/catchでラップすることです。実際のエラーを確認することができます。これをbabel.js-configに追加して、自動的に完了します:https://github.com/gaearon/react-transform-catch-errors

関連する問題