У меня есть работающий компонент в форме избыточной формы, и я назначаю initialValues, чтобы позволить моему пользователю обновлять свои существующие данные. но я получаю, когда я обновляю одно поле, другое поле становится пустым.
Я использую "redux": "^ 4.0.1", "redux-form": "^ 8.2.0"
в CustomerScreen.js
<CustomerForm
onSubmit={values => this.onSubmitForm(values)}
isLoading={this.state.formLoading}
initialValues={customer}
/>
В CustomerForm.js
const CUSTOMER_FIELDS = [
{ name: 'name', label: 'Full Name' },
{ name: 'email', label: 'Email Address', keyboardType: 'email-address', isRequired: true },
{ name: 'phone', label: 'Phone Number', keyboardType: 'phone-pad' },
{ name: 'address', label: 'Address', keyboardType: 'default' }
]
let CustomerForm = ({ onSubmit, isLoading, handleSubmit, ...rest }) => {
const styles = getStyleSheet('form', rest.isDarkTheme)
return (
<View style={styles.container}>
<View style={styles.fieldsWrapper}>
<FormRender fields={CUSTOMER_FIELDS} />
</View>
<View style={styles.buttonWrapper}>
<Button
type="primary"
activeStyle={styles.buttonActiveStyle}
size="large"
loading={isLoading}
style={styles.button}
onPress={handleSubmit(values => onSubmit(values))}
>
SAVE
</Button>
</View>
</View>
)
}
function validate(values) {
const error = {}
_.each(CUSTOMER_FIELDS, ({ name, label, isRequired }) => {
if (isRequired) {
if (values[name] === undefined || isEmpty(values[name])) {
error[name] = `${label} is required fields!`
}
}
})
return error
}
function mapStateToProps({ isDarkTheme }) {
return { isDarkTheme }
}
CustomerForm = reduxForm({
validate,
form: 'CustomerForm'
})(CustomerForm)
CustomerForm = connect(mapStateToProps)(CustomerForm)
export default CustomerForm
Я ожидаю, что выходные данные будут обновляться только в поле, над которым я работаю, а поле остальных по-прежнему имеет исходное значение.