2017-06-15 80 views
1

我只學習ReactJS,而我堅持簡單的邏輯(我真的很糟糕的JS)。我有一個表格,包含名字,電子郵件和消息。ReactJS onChange,如果嵌套散列/ json

@ContactUsNew = React.createClass 
    getInitialState: -> 
    message: @props.message 
    getDefaultProps: -> 
    message: { name: '', email: '', message: ''} 
    handleChange: (event) -> 
    name = event.target.name 
    console.log @setState message: { "#{ name }": event.target.value } 

而且我不知道如何來解決這個行@setState message: "#{ name }": event.target.value工作,因爲我有建立這個哈希message: { name: '', email: '', message: '' }

我想要存檔的是用@setState更新散列/ json的單個組件。

如果我這樣做@setState message: { "#{ name }": event.taget.value }結果將是message: { email: [email protected] }(如果電子郵件是在最後輸入)。

我只是不知道如何更新散列/ json的每個元素sepperatly。

回答

0

順便說一句,你的代碼是用coffeescript編寫的。

你只需要做出更改message對象,setState整個事情..理想情況下,你會使用Object.assign創建一個副本,是這樣的:

copy = Object.assign {}, @state.message, { "#{ name }": event.target.value } 
@setState message: copy 
+0

是的,我知道這是咖啡,我仍然可以在js,jQuery和咖啡中編寫簡單的東西,但想用js讓我的技能更好。沒有測試你的建議,但我會收到無法控制的警告? (因爲我試圖替換值並收到'你不能從可控制切換到錯誤'。 –