Reactでは何か不思議なことに直面しています。React setState:ネストされたプロパティを文字列で設定します。
私の目標:コンポーネントステータスの特定の属性を更新します。これはネストされた属性にすることができます。しかし!私はそれを動的に更新したい(一束の入力に対してonChange呼び出しを行い、onChange関数をコード化したくない、汎用のコードをコードしたい)。作品
例:次に
this.state = { value: 0 }
:
var attribute = 'value'
var value = 'myvalue'
this.setState({[attribute]:value})
例は機能しません。そして、
this.state = { nested: { value: 0 } }
:
var attribute = 'nested.value'
var value = 'myvalue'
this.setState({[attribute]:value})
可能な限り多くのネストレベルを持つことができます。私はそれに対処するための一般的で簡単な方法を見出したいと思います。私はのonchange機能と、それを実装しようとしているよう
私はJSFiddleウィッヒを作成したが、この問題を再現:http://jsfiddle.net/n61kv6gy/
は、誰もがアイデアを持っていますか?その後、変更を行い、
onChange(value,e) {
let oldState = this.state.nested.nestedAgain;
let newState = this.state.nested.nestedAgain;
newState[value] = e.target.value;
this.setState({oldState: newState})
}
まずクローンあなたの状態を、最後に状態を更新:私はあなたの質問を理解している場合
「更新」を調べましたか?関連:http://stackoverflow.com/questions/25008322/updating-deep-reactjs-state – Li357