我所拥有的一切使我更加着迷于代码,并将其与mapStateToProps和Redux form的指南进行了比较。我试图获取一个字段值,但是我不断收到 undefined 。 我所拥有的是:
const myForm = reduxForm({
form: 'myForm',
})(MyComponentClass);
const mapStateToProps = ((state) => ({
l10n: l10nService,
formValues: getFormValues('myForm')(state),
}));
export default connect(mapStateToProps)(myForm);
当我尝试输出
之类的formValue时console.log(formValues);
我一直在不确定。当我重新阅读文档时,这很令人沮丧,并且找不到问题所在。我正在用这样的方法可视化该字段:
addSelectFieldD(element, key) {
return (<Field
key={key}
name={element.name}
label={l10nService.translate(element.label)}
component={SelectField}
units={element.units}
options={this.props.selectOptions}
onChangeDuration={this.onChangeDuration}
onRetrieveSelectOptionsError={this.onRetrieveSelectOptionsError}
informationMessage={l10nService.translate(element.tooltip)}
submitted={this.state.formSubmitted}
/>);
}
有趣的是,我能够在其他组件中获取formValues。我非常感谢任何帮助人员,因为我对此非常满意。
编辑:我创建了一个示例here
答案 0 :(得分:1)
好的,所以我已经解决了这个问题,在redux格式中,如果您不向表单字段提供一些初始值,它将是未定义的,而不是空对象。
为了给您一个主意,我已使用字段的初始值更新了沙箱 所以现在在this.props.formValues上,您将获得该字段的默认值, 显然,onChange不能处理,因此即使您从下拉菜单中更改了值,也可以保持不变,但是可以理解,
Here,您可以查看其完成情况,基本上我已经为
提供了表单的初始值const myForm = reduxForm({
form: "myForm",
initialValues: {
my: "value1",
},
})(MyForm);
更新:由于您将react-select用作选择组件,因此当您将下拉列表值更改为
时,您需要分派更改操作onChangeSelect = (props, newOption) => {
this.props.dispatchChange(formName, fieldName, value)
}
我已更新沙箱,以获取您的案例的完整工作示例 希望现在能对您有所帮助