2017-02-06 5 views
0

私はReactチュートリアルを行っていますが、なぜ私がバグを起こしているのか理解できません。Reactイベントハンドラで.bind()を使用するとエラーが発生する

私が反応使用して、このボタン要素を追加しようとしています:私は言われた

add: function(item) { 
    var arr = this.state.comments; 
    arr.push(item); 
    this.setState({comments: arr}); 
    }, 

<button onClick={this.add.bind(null, 'new item')}>New Item</button>

イベントハンドラが異なるの内側にある次の関数を呼び出す必要がありますが、クラスに反応しますこれは機能していませんでした。なぜなら、あなたの関数にこの値とnullをバインドしています。これは、あなたがアクセスしているプロパティの中でtypeError(おそらく:nullまたはshのプロパティ状態にアクセスできません)

しかし、私はこれが何を意味するのか、どのように問題を解決するのかは分かりません。助けてください。

以下は、私が使用している私の完全なcodepenプロジェクトとyouTubeチュートリアル(React JSチュートリアルの初心者用 - 13 - The NewBostonによる新しいコンポーネントの作成)へのリンクです。

http://codepen.io/Daniel_Widrich/pen/yVaXXZ

https://www.youtube.com/watchv=OKRu7i49X54&index=13&list=PL6gx4Cwl9DGBuKtLgPR_zWYnrwv-JllpA

事前にありがとうございました。これはStackOverflowに関する私の最初の質問であり、私はこのプロジェクトに基づいて見習いプログラムに受け入れられるように試みています。どんなフィードバックも大歓迎です。私は大きな男の子ですので、私は批評を扱うことができます。

-Dan

答えて

0

エラーメッセージUncaught TypeError: Cannot read property 'bind' of undefinedはあなたがundefinedオブジェクトにbindを呼び出していることを意味します。すなわち、 this.addundefinedです。

なぜthis.addは未定義ですか?

ファンクションがBoardコンポーネントで定義されていないためです。 add関数をCommentコンポーネントからBoardコンポーネントに移動します。

BoardコンポーネントにJavaScriptコードの行15-19を移動します。)

Working codepen

+0

ありがとうございます。感謝しています。これは本当にユーザーエラーになります。質問を削除します –

関連する問題