Перезаписать начальное значение из-за редукса - PullRequest
0 голосов
/ 21 февраля 2019

Я инициализирую значения в поле используя initialValues.Хотя я хотел бы перезаписать одно поле другим значением по умолчанию.Это возможно?Я пытался с defaultValue и т. Д., Но я не работаю.Это часть кода, которую я хочу изменить:

<Field
  type="text"
  name={`${some}.url`}
  component={renderField}
  label="URL"
  defaultValue={some.url + ':' + some.port}
/>

Она инициализируется с помощью URL, но я хотел бы изменить ее на URL: порт

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Перед передачей initialValues реквизита для вашего 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))
0 голосов
/ 21 февраля 2019

Не уверен, что и как вы генерируете или обновляете переменные 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");

Надеюсь, это поможет

...