2016-03-19 56 views
0

我對流星/反應式編程非常陌生,對JavaScript不太熟悉,所以請原諒我的無知。meteor/react - 「readOnly」屬性有什麼作用?

我經歷流星教程here,我試圖瞭解以下行:

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

具體來說,我想了解一下readonly={true}做,爲什麼這是必要的。

此外,我嘗試了谷歌搜索,發現這個頁面看起來像文檔,但它甚至沒有提到這一點。

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

讚賞任何幫助。

回答

2

readOnly = {true}是有意義的,因爲我們希望禁用單擊它時發生的事情的正常HTML行爲。它的狀態已經由React控制,並且由於React中沒有雙向綁定,因此讓你只需選中或取消選中就可以與應用程序狀態混淆。相反,在onClick處理程序中更改了this.state.hideCompleted

這樣,當你點擊它時,this.toggleHideCompleted被執行,可能做的是this.setState({hideCompleted : !this.state.hideCompleted}),並且該組件被重新呈現爲新狀態。

+0

如果'readOnly = {false}',預期的行爲是什麼。我試過了,沒有任何改變... – evan54

+1

React實際上可以節省您。如果你這樣做,它會向控制檯發出警告,並且將該複選框呈現爲'readOnly = {true}'。演示:https://jsfiddle.net/dannyjolie/bqr6u6sL/不依賴於一些自動修復功能,並且正確地執行它仍然是一個好習慣。 – dannyjolie

相關問題