2016-12-01 20 views
-1

子コンポーネントの状態はanswersという空の配列です。親の状態を更新しても子コンポーネントは状態を保存します

この配列には、ラジオまたはチェックボックスのいずれかの入力を含むliアイテムのインデックスが挿入されています。したがって、4つのチェックボックスのli要素があり、FirstとLastをクリックすると、配列には0と3が含まれます。

"next"をクリックすると、その配列は親コンポーネントから渡された関数に引数として渡されますその関数はその配列を子状態から親状態に追加します。

親状態が再レンダリングなっているので、再び作成されたとき、私は私の子コンポーネントを想定し、空の配列ですが、それが持っている状態で、私は次の関数を呼び出し前のように、実際には同じであるデフォルト状態になります、0と3

を言います

私の子のコンストラクタも2回目に呼ばれません。あなたはhereを見ることができます。

答えて

0

コールバック関数を子Questionに渡すと、それらの関数は親Runオブジェクトにバインドされませんでした。したがって、これらの関数をQuestionと呼ぶと、自己参照変数thisundefinedとなりました。ブラウザのコンソールに投げ出され、エラーがなければならない

... 
onPrev = {this.onPrev.bind(this)} 
onNext = {this.onNext.bind(this)} 
... 

:へ

... 
onPrev = {this.onPrev} 
onNext = {this.onNext} 
... 

は、これを変更してください。これで問題が解決しない場合は、コンソールからエラーを送信することもできます。

関連する問題