#reactjs #antd
Вопрос:
Я использую antd
, поэтому у меня много полей, некоторые из которых являются входными данными, выбором, загрузкой файлов и т. Д., Во antd
входном компоненте есть атрибут name, но я не могу видеть имя в antd
выбранном компоненте, когда я выбираю один из вариантов, получаю «не удается деструктировать текущий объект неопределенного».
Вот мой onChangeHandler
handleChange = ({ currentTarget: input }) => {
const errors = { ...this.state.errors }
const errorMessage = this.validateProperty(input)
if (errorMessage) errors[input.name] = errorMessage
else delete errors[input.name]
const data = { ...this.state.data }
data[input.name] = input.type === 'file' ? input.files[0] : input.value
this.setState({ data, errors })
}
как я использую компонент select в повторно используемой форме
renderSelect = (name, label, options) => {
const { data, errors } = this.state
return (
<Select
name={name}
label={label}
options={options}
value={data[name]}
error={errors[name]}
onChange={this.handleChange}
/>
)
}
вот мой antd
выбранный компонент
<Select name={name} size="medium" style={{ width: '350px' }} {...rest}>
<Select.Option />
{options.map((option) => (
<Select.Option key={option._id} value={option._id}>
{option.name || option}
</Select.Option>
))}
</Select>
Ответ №1:
Вы забыли label
недвижимость для ан Option
?
<Select.Option
label={option.name || option}
key={option._id}
value={option._id}
>
{option.name || option}
</Select.Option>
Как насчет handleChange
того , является ли это объектом или строкой?
Комментарии:
1. Выберите.опция в свойстве метки поддержки antd doest поддерживает только ключ , значение
2. Он поддерживает ярлык ant.design/компоненты/выбор/…
3. нет, брат, ни Выбрать, ни Выбрать.Опция имеет свойство метки
4. Как насчет
handleChange
того , является ли это объектом или строкой?5. он принимает событие для поля ввода, но select не поддерживает событие, поэтому значение select не меняется при выборе опции