2017-06-15 54 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让我的技能更好。没有测试你的建议,但我会收到无法控制的警告? (因为我试图替换值并收到'你不能从可控制切换到错误'。 –