我正面临一个愚蠢的问题,即默认值未在表单中呈现。 在我的应用中,当用户登录时,表单将自动填充一些详细信息,因为它将从通过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])}
/>
}
答案 0 :(得分:0)
在Javascript中,没有本地capitalize()
。这可能是返回undefined
而不是字符串。尝试使用此命令将字符串中的第一个字母大写。
gender.charAt(0).toUpperCase() + gender.substr(1)