Обновление: июль 2019
Очевидно, все, что вам нужно сделать, это распространить свойство ввода поля.Работает без нареканий.Узнайте о распространении, если вы не знакомы с ним.
const PhoneAdapter = ({ input }) => (
<PhoneInput {...input} />
)
<Field name="phone" placeholder="Enter phone number" component={PhoneAdapter} />
Я закончил экспериментировать с реквизитом FieldRenderProps, пока он не сработал.Я не был уверен, будет ли это работать или нет, так как react-phone-number-input
- это два элемента в компоненте.Я думал, что он будет реализовывать вход только на одном из элементов.
Используя input
, я получаю доступ к реквизитам входа.Поэтому я вызвал его значение, так как значение по умолчанию выглядит так:
<PhoneInput
placeholder="Enter phone number"
value={ this.state.value } // This is what I called.
onChange={ value => this.setState({ value }) }/>
Затем я проделал то же самое для свойства onChange.
const PhoneAdapter = ({ input }) => (
<PhoneInput value={input.value.value} onChange={value => input.onChange(value)} />
)
Наконец, я использовал компонентадаптер вот так:
<Field name="phone" placeholder="Enter phone number" component={PhoneAdapter} />