2017-02-19 12 views
0

私の状態と反応してSETSTATEを呼び出すためにどのようにこの は、ネストされたオブジェクトおよび未知のキー

state = { 
    basic: { 
    entry: 'index.js', 
    output: { 
     path: 'dist', 
     filename: 'bundle.js', 
    } 
    } 
} 

私は入力のためのコールバックを定義しているのonChangeイベントのようになります。

handleUpdateString = (e) => { 
    const name = e.target.name 
    const value = e.target.value 
    this.setState({ [name]: value }) 
    console.log(this.state) 
} 

は私の入力された名前があると言います'basic.entry'

私の状態は更新されますが、代わりにthis.state.basicがあります{ entry: 'some value'}

私は私の状態で新しいキーで終わる

{ basic.entry: 'some value' }

私は、ネストされたオブジェクトに、ドット区切り文字列を変換するためにdot-objectを使用して、そしてsetStateにこれを渡して試してみましたが、状態は変わらないように見えます。

この問題の簡単な解決方法を教えてください。

+0

handleUpdateString = (e) => { const name = e.target.name const value = e.target.value const state = Object.assign({}, this.state); setData(name, value, state); this.setState(state); console.log(this.state) } 
試行 'this.setState({名前:値})'。 – jmargolisvt

答えて

0

明示的なsetStateでswitch文を使用します。

0

これは問題ではありませんが、プロパティにドットで表記された文字列を使用してオブジェクトにネストされたプロパティを設定する方法に関するJavaScriptに関する純粋な質問です。ここで答えがある:Javascript object key value coding. Dynamically setting a nested value

にその例を使用するが反応:

関連する問題