2016-03-19 7 views
0

Ich bin sehr neu zu Meteor/reagieren Programmierung und nicht sehr vertraut mit Javascript so bitte entschuldigen Sie meine Ignoranz.meteor/reagieren - Was macht die Eigenschaft "readOnly"?

Ich werde durch den Meteor Tutorial here und ich versuche, die folgende Zeile zu verstehen:

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

Speziell zu verstehen, ich versuche, was die readonly={true} tut und warum dies notwendig ist.

Auch habe ich versucht zu googeln und fand diese Seite, die wie die Dokumente aussieht, aber es nicht einmal erwähnt.

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

Jede Hilfe sehr geschätzt.

Antwort

2

Es macht Sinn, readOnly = {true} zu haben, weil wir das normale HTML-Verhalten dessen, was passiert, wenn Sie darauf klicken, deaktivieren wollen. Sein Zustand wird bereits von React mit checked={this.state.hideCompleted} gesteuert, und da es in React keine bidirektionale Bindung gibt, können Sie es einfach wie gewohnt aktivieren oder deaktivieren, um den Anwendungsstatus zu ändern. Stattdessen wird this.state.hideCompleted im onClick Handler geändert.

Auf diese Weise, wenn Sie darauf klicken, wird this.toggleHideCompleted ausgeführt, wahrscheinlich this.setState({hideCompleted : !this.state.hideCompleted}), und die Komponente wird mit dem neuen Status neu gerendert.

+0

Also was ist das erwartete Verhalten, wenn 'readOnly = {false}'. Ich habe es versucht und nichts geändert ... – evan54

+1

React speichert Sie tatsächlich. Es protokolliert eine Warnung an die Konsole, wenn Sie das tun, und rendert das Kontrollkästchen trotzdem als 'readOnly = {true}'. Demo: https://jsfiddle.net/dannyjolie/bqr6u6sL/ Es ist immer noch eine gute Übung, sich nicht auf einige automatische Fixfunktionen zu verlassen und es richtig zu machen. – dannyjolie

Verwandte Themen