2016-06-13 19 views
0

私は流星と反応を学ぶの初めの段階にあり、ちょうどTodos listを作る上でチュートリアルを完了しました。反応するtodosチュートリアルの小道具の状態

実装では、完了したタスクとすべてのタスクを切り替えることができる上部にチェックボックスがあります。これは状態として設定されます。

タスクを完了または完了しないように表示できるチェックボックスも各タスクの横にあります。

私の質問は、これらのチェックボックスは両方ともリアルタイムで変化しますが、前者だけが状態変数として指定されていますか?なぜタスクのチェックボックスは小道具ですか?

答えて

1

グローバルチェックボックスは、Appコンポーネントの状態にリンクされています。

Taskコンポーネントのローカルチェックボックスは複雑になります。問題は、AppコンポーネントがすべてTaskオブジェクトのグローバルな知識を必要としていることです。完了したタスクを非表示にする。

Taskコンポーネントはチェックボックス状態を保持することができますが、Reactが動作する方法ではありません。 Reactでは、親コンポーネントは通常、子の状態を読み取るのではなく、代わりに状態自体を保持し、関連する情報を子に渡してそれをレンダリングできるようにします。

子がある状態を更新する必要がある場合、子はグローバルレベルで(とdeleteThisTasktutorialにあります)、その親が通知を受けて子を再送出します。別の例については、hereを参照してください。

+0

おかげで、私は、私は、各タスクの確認(完成またはしない)状態が状態ではない理由の詳細困惑していると思います。なぜ私は、完成したショーが国家だと思うのですが、各タスクの横にあるチェックボックスは、それが動的なときにはちょうど支柱にすぎないのです。両方のコードを見ると、両方ともthis.state/props.task.propertyをtoggleイベントハンドラにバインドします。これは、showCompletedが各タスクのチェックで小道具を使用している間は、変数をサーバに更新します。任意の明確化? – meteorite104

+0

グローバル状態は一時的です(タブを閉じると消えてしまいます)。 「ローカル」状態はデータベースに格納されるため、コンポーネントはそれらを表示するだけです。あなたはそれらを地方の州に保管することができますが、ここでは役に立たないでしょうし、とにかくデータベースを更新しなければなりません。 –

0

良い説明here(フルバージョン)返信用

enter image description here

関連する問題