2017-06-15 8 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 } 

そして私は、私は、このハッシュmessage: { name: '', email: '', message: '' }を構築持っているので、動作するようにこの行@setState message: "#{ name }": event.target.valueを動作させる方法がわかりません。

私がアーカイブしようとしているのは、@setStateハッシュ/ jsonの個々のコンポーネントで更新することです。

@setState message: { "#{ name }": event.taget.value }のようにすると、結果はmessage: { email: [email protected] }(電子メールが最後に入力された場合)になります。

hash/json sepperatlyの各要素をどのように更新するのか分かりません。

答えて

0

あなたのコードは、ところでcoffeescriptで書かれています。

あなただけsetState全体の事をmessageオブジェクトに変更を加える必要がある、と...理想的には、コピーを作成し、このような何かをObject.assignを使用して:

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

ええ、私はそれがコーヒーを知っている、私はjs、jQuery、コーヒーで簡単なことを書くことはできますが、jsで自分のスキルを向上させたいと考えています。あなたが提案したものをテストしなかったのですが、コントロールできない警告が表示されますか? (なぜなら私は値を代入しようとしていて、 '制御可能から制御不能に切り替えることはできません 'というエラーを受け取ったからです。 –

関連する問題