我遇到了一个问题,即 redux 没有获得 onChange 值状态(状态相等)
这是我的代码
ReduxFormDropdown.js
import React from 'react'
import { PropTypes } from 'prop-types'
import { Icon, Dropdown } from 'semantic-ui-react'
import FormLabel from '../FormLabel'
export const ReduxFormDropdown = ({
input,
label,
placeholder,
meta: {
error,
touched,
},
...custom
}) => {
const errorMessage = (
<div style={{ color: '#E20000', paddingTop: '.3rem', fontSize: '12px' }} >
<Icon name="warning" />
{error}
</div>
)
return (
<div>
<FormLabel>{label}</FormLabel>
<Dropdown
placeholder={placeholder}
value={input.value}
onChange={(param, data) => props.input.onChange(data.value)}
error={touched && error}
selection
{...input}
{...custom}
/>
{touched && error && errorMessage}
</div>
)
}
ReduxFormDropdown.propTypes = {
input: PropTypes.object.isRequired,
label: PropTypes.string,
placeholder: PropTypes.string,
meta: PropTypes.shape({
touched: PropTypes.bool,
error: PropTypes.string,
}),
}
表单.js
//...
const genders = [
{
key: '1',
text: 'Male',
value: 'male',
},
{
key: '2',
text: 'Female',
value: 'female',
},
{
key: '3',
text: 'Other',
value: 'other',
},
]
//...
<Form.Field>
<Field
name="gender"
component={ReduxFormDropdown}
placeholder="Gender"
options={genders}
/>
</Form.Field>
//...
当我选择时该值没有改变,当我检查 redux 开发工具时,我发现该值没有得到更新(状态相等)。我错过了什么?谢谢您的答复。