从 redux-form 覆盖初始值
Overwrite initial value from redux-form
我正在使用 initialValues 初始化 Field 中的值。虽然我想用另一个默认值覆盖其中一个字段。
这可能吗?我正在尝试使用 defaultValue 等,但我没有用。
这是我要更改的代码部分:
<Field
type="text"
name={`${some}.url`}
component={renderField}
label="URL"
defaultValue={some.url + ':' + some.port}
/>
初始化为url,但我想将其更改为url:port
不确定生成或更新 url
和 port
变量的内容和方式。但是这样的事情应该有效。如果你能分享更多细节,我可以调整答案。
private url: string = `${some}.url`;
private port: string = `${some}.port`;
<Field
type="text"
name={this.url}
component={renderField}
label="URL"
defaultValue={this.url + ':' + this.port}
updateDefaultValue={(url, port) => {this.url = url; this.port = port}}
/>
在您的 Field
组件中
this.props.updateDefaultValue("xxx","yyy");
希望对您有所帮助
在将 initialValues
prop 传递给您的 redux-form
组件之前,您可以修改它。
类似的东西:
const mapStateToProps = state => ({
// Here's how to set a default value and overwrite the API initial data.
// Let's say your form is editing an User.
// And if the User, returned by the API, doesn't have a name,
// then we set a default value.
initialValues: {...state.user, name: state.user.name || 'Default name'}
)}
// `connect` is part of `react-redux`.
// If you don't use `react-redux`, then just modify the `initialValues`
// before passing it down to the form.
export default connect(mapStateToProps)(reduxForm({
form: 'formName',
})(Component))
我正在使用 initialValues 初始化 Field 中的值。虽然我想用另一个默认值覆盖其中一个字段。 这可能吗?我正在尝试使用 defaultValue 等,但我没有用。 这是我要更改的代码部分:
<Field
type="text"
name={`${some}.url`}
component={renderField}
label="URL"
defaultValue={some.url + ':' + some.port}
/>
初始化为url,但我想将其更改为url:port
不确定生成或更新 url
和 port
变量的内容和方式。但是这样的事情应该有效。如果你能分享更多细节,我可以调整答案。
private url: string = `${some}.url`;
private port: string = `${some}.port`;
<Field
type="text"
name={this.url}
component={renderField}
label="URL"
defaultValue={this.url + ':' + this.port}
updateDefaultValue={(url, port) => {this.url = url; this.port = port}}
/>
在您的 Field
组件中
this.props.updateDefaultValue("xxx","yyy");
希望对您有所帮助
在将 initialValues
prop 传递给您的 redux-form
组件之前,您可以修改它。
类似的东西:
const mapStateToProps = state => ({
// Here's how to set a default value and overwrite the API initial data.
// Let's say your form is editing an User.
// And if the User, returned by the API, doesn't have a name,
// then we set a default value.
initialValues: {...state.user, name: state.user.name || 'Default name'}
)}
// `connect` is part of `react-redux`.
// If you don't use `react-redux`, then just modify the `initialValues`
// before passing it down to the form.
export default connect(mapStateToProps)(reduxForm({
form: 'formName',
})(Component))