使用React

时间:2016-12-13 08:50:11

标签: javascript html5 reactjs conditional

我有这个TextField元素。我想有条件地添加value={x}defaultValue={x}

这将有效(没有任何条件)

<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"
/>

但是,如果我尝试添加条件(当然会失败):

<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"
/>

有没有办法让defaultValuevalue属性指向函数而不是静态字符串?鉴于我的需要,我必须有条件地使用valuedefaultValue因为它们的行为完全不同。

1 个答案:

答案 0 :(得分:1)

如果您使用的是es6,则使用{...args}运算符解析组件声明结尾的所有剩余参数。

示例:

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

我希望它能奏效。