gpt4 book ai didi

javascript - 从 Redux 表单获取字段值返回 'undefined'

转载 作者:行者123 更新时间:2023-12-02 22:50:20 25 4
gpt4 key购买 nike

我所拥有的让我在代码中头疼,将其与 mapStateToProps 中的指南进行比较。和 Redux form 。我正在尝试获取字段值,但我不断收到未定义。我所拥有的是:

const myForm = reduxForm({
form: 'myForm',
})(MyComponentClass);

const mapStateToProps = ((state) => ({
l10n: l10nService,
formValues: getFormValues('myForm')(state),
}));

export default connect(mapStateToProps)(myForm);

当我尝试输出 formValues 时,例如

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

最佳答案

好吧,我已经解决了这个问题,在 redux 形式中,如果你不向表单字段提供一些初始值,它将是未定义的,而不是一个空对象。

为了给您一个想法,我已经使用该字段的初始值更新了沙箱所以现在在 this.props.formValues 上您将获得该字段的默认值,显然 onChange 不是句柄,因此即使您更改下拉列表中的值,它仍然保持不变,您可以更改它,但您明白了,

Here你可以看看它是如何完成的,基本上我已经提供了表单的初始值

const myForm = reduxForm({
form: "myForm",
initialValues: {
my: "value1",
},
})(MyForm);

更新:由于您使用react-select作为选择组件,因此当您将下拉值更改为

时,您需要分派(dispatch)更改操作
onChangeSelect = (props, newOption) => {
this.props.dispatchChange(formName, fieldName, value)
}

我已经更新了沙箱,以获取您案例的完整工作示例希望现在有帮助

关于javascript - 从 Redux 表单获取字段值返回 'undefined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58206406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com