2016-12-13 8 views
0

このTextField要素があります。私は条件文を追加しようとする場合、私は(もちろん、それは失敗します)、しかし、条件付きで、これは(任意の条件文なし)条件付きで要素のプロパティを条件付きで追加/削除する

<TextField 
    id="pickupName" 
    className="order-form-input" 
    onBlur={this.fieldChange('name')} 
    ref="pickupName" 
    defaultValue={(order.pickup || {}).name || ''} 
    // hintText="Pickup Contact Name" 
    floatingLabelFixed={true} 
    floatingLabelText="Contact Name" 
/> 

に動作しますvalue={x}またはdefaultValue={x}

のいずれかを追加したい:

<TextField 
    id="pickupName" 
    className="order-form-input" 
    onBlur={this.fieldChange('name')} 
    ref="pickupName" 
     {true ? defaultValue={(order.pickup || {}).name || ''} : 
          value={(order.pickup || {}).name || ''}} 
    // hintText="Pickup Contact Name" 
    floatingLabelFixed={true} 
    floatingLabelText="Contact Name" 
/> 

は、defaultValueまたはvalueプロパティが静的な文字列ではなく関数を指し示す方法ですか?私の必要性を考えると、条件付きでvalueまたはdefaultValueのどちらかを使用する必要があります。

+0

おそらく 'value'を使うべきでしょう。 – huachengzan

+0

はい、私は値を使用する場合は、すべてのキーストロークを更新する、過大ですonChangeを使用する必要があります。 –

答えて

1

es6を使用している場合は、演算子{...args}を使用して、コンポーネント宣言の最後に残りの引数をすべて解析します。

例:

<TextField 
    id="pickupName" 
    className="order-form-input" 
    onBlur={this.fieldChange('name')} 
    ref="pickupName" 
    floatingLabelFixed={true} 
    floatingLabelText="Contact Name", 
    {...extra_args} 
    /> 

私はそれが動作することを願っています。

+0

ありがとう!あなたはextra_argsのようなものの例を見せてもらえますか?配列か普通のオブジェクト? –