2016-10-12 9 views
3

私はこのようなコンストラクタで自分の状態を定義しています。 複数の値でネイティブsetStateに反応する

constructor(props) { 
    super(props); 
    this.state = { 
    order: props.data ? { ...props.data } : { title: '', birthdate: '' , gender: '', startdate: '', starttime: '', brand: null}, 

はその後、別の関数の中で私がコメント行はすべての要素、および順序が定義されていないことを第二のリターンを上書きしているだけ
this.setState({ 
    //order: { brand: items[0].title }, 
    order: { ...order, brand: items[0].title }, 
    }); 

ためorder.brand

SETSTATEしようとしています。

複数の値を持つ状態の項目を1つだけ保存する正しい構文は何ですか?

+1

を使用しようとして気に入っている

あなたは状態を割り当てるか、[ 'update'](https://facebook.github.io/react/docs/update.html)を使用してみましたか? – Li357

答えて

1

あなたがオブジェクトの値を変更するupdateを使用することができますコメントで述べたように:

var update = require('react-addons-update'); 

this.setState(function(previousState, currentProps) { 
    var newState = update(previousState,{ 
     order: { 
      brand: { 
       $set: 'some new value' 
      } 
     } 
    }); 

    return newState; 
}); 

が、それはあなたが使用している場所の順序が実際に定義されていない可能性があります、そのエラーが存在する理由だけで注意することはhttps://facebook.github.io/react/docs/update.html

+0

注文時に予期しないトークン{ –

+0

@Andréはアップデート – FuzzyTree

+0

を参照してくださいありがとうございました! –

0

を見ますそれ。あなたは{...this.state.order}

関連する問題