есть ли способ заставить redux-form игнорировать точки в имени поля?

У меня есть спокойный api, который принимает строки с точками (пути) в качестве ключей параметров.

например, я могу назвать это:

/widgets?material.type=iron

поэтому у меня есть поле редукционной формы, например:

<Field name="material.type" component={TextField} label="material type" />

но redux-form интерпретирует точку в material.type, и при передаче моему обработчику заканчивается как {material: {type: 'iron'}}.

Я понимаю, почему это поведение по умолчанию, но мне было интересно, есть ли простой способ помешать этому с помощью свойства или чего-то такого, что вместо этого я могу получить {'material.type': 'iron'}?


person tony_k    schedule 28.11.2017    source источник
comment
вы нашли способ решить эту проблему?   -  person Sidharth    schedule 13.02.2019


Ответы (1)


Это невозможно. Redux Form всегда будет вкладывать значения полей в объекты, если их имена содержат точку - внутренне _.toPath является используется, и у него нет возможности экранировать символы.

Вместо этого вы могли бы переименовать значение при присвоении initialValues:

initialValues: {
  ...formData,
  materialType: formData['material.type']
}

... и при отправке формы:

onSubmit (values) {
  return submitSomehow({
    ...values,
    'material.type': values.materialType
  })
}
person gustavohenke    schedule 03.12.2017