prop未显示在react自定义下拉列表组件中

时间:2018-06-26 15:47:21

标签: string reactjs dropdown default-value react-props

我正面临一个愚蠢的问题,即默认值未在表单中呈现。 在我的应用中,当用户登录时,表单将自动填充一些详细信息,因为它将从通过props传递给我的组件的已存储用户信息中获取数据。

在这种情况下,我已经选择的“性别”,即在渲染组件时未显示默认值。

同时,当我传递与硬编码相同的值时,它可以很好地工作。

我在'renderGenderDropDown'中收到的'defaultValue'是'Male'(与我存储在myValue常量中的相同)。

但是,myValue const有效,defaultValue无效。 是的,我的组件已在其他多个组件中使用,并且运行良好。基本上,它是从“反应”中渲染“”。

该如何解决?

代码:

renderGender() {
    const { options, data } = this.props;
    const gender = get(data, 'gender');
    const defaultValue = gender ? capitalize(gender) : gender;
    const fieldName = 'gender';
    return this.renderGenderDropDown(fieldName, defaultValue, prefixOptions);
}

renderGenderDropDown(fieldName, defaultValue, options) {
    const { configuration, id, validations } = this.props;
    const myValue = 'Male';
    return  <AppDropDown
      label={getLabel(fieldName, configuration, validations, 'gender')}
      options={dropdownOptions}
      defaultValue={myValue}
      //defaultValue={defaultValue}
      key={fieldName}
      className={fieldName}
      disabled={false}
      id={id}
      onChange={this.onGenderChange(this[fieldName])}
    />
}

1 个答案:

答案 0 :(得分:0)

在Javascript中,没有本地capitalize()。这可能是返回undefined而不是字符串。尝试使用此命令将字符串中的第一个字母大写。

gender.charAt(0).toUpperCase() + gender.substr(1)