2016-03-19 12 views
0

私は流星に非常に新しい/プログラミングと非常にJavaスクリプトに精通していないので、私の無知を許してください。流星/反応 - 「readOnly」プロパティは何をしますか?

私は流星のチュートリアルhereを通じてつもりだと次の行を理解しようとしています:具体的に私はreadonly={true}を行い、これがなぜ必要とされているかを理解しようとしている

<input 
    type='checkbox' 
    readOnly={true} 
    checked={this.state.hideCompleted} 
    onClick={this.toggleHideCompleted} /> 

また、私はグーグルで試してみましたが、このページはドキュメントのように見えましたが、これについては言及していません。

https://facebook.github.io/react/docs/forms.html

すべてのヘルプ高く評価しました。

答えて

2

通常のHTMLの動作を無効にしたいので、readOnly = {true}をクリックすると意味があります。その状態は既にchecked={this.state.hideCompleted}のReactによって制御されており、Reactには双方向バインドが存在しないため、通常と同じようにチェックまたはチェックを外すだけで、アプリケーションの状態が乱れることがあります。代わりにonClickハンドラでthis.state.hideCompletedが変更されています。

これをクリックすると、this.toggleHideCompletedが実行され、おそらくthis.setState({hideCompleted : !this.state.hideCompleted})となり、コンポーネントは新しい状態で再描画されます。

+0

'readOnly = {false}'の場合は、どのような動作が期待されますか?私はそれを試して何も変わっていません... – evan54

+1

実際にあなたはあなたを助けます。それを行うと、コンソールに警告が記録され、チェックボックスは 'readOnly = {true}'とレンダリングされます。デモ:https://jsfiddle.net/dannyjolie/bqr6u6sL/いくつかの自動修正機能に頼るのではなく、適切に実行することをお勧めします。 – dannyjolie