Я реализовал форму, используя библиотеку redux-form. Форма имеет 3 поля.
- Имя (тип ввода)
- Фамилия (тип ввода)
- Любимый цвет (выберите/раскрывающийся список)
Что я пытаюсь реализовать, когда пользователь меняет свой любимый цвет (раскрывающийся список). Очищается только поле «Фамилия», а не какие-либо другие поля формы (т. е. поля «Имя» и «Любимый цвет» должны оставаться без изменений).
Я уже реализовал данное требование, пример кода приведен ниже.
Сохранить конфигурацию файла
const reducer = combineReducers({
form: reduxFormReducer.plugin({
mySimpleForm: (state, action) => {
if(action.type === "@@redux-form/CHANGE" && action.meta.form === "mySimpleForm" && action.meta.field === "favoriteColor") {
const newState = {...state};
delete(newState.values.lastName);
return newState;
}
return state;
}
})
});
const store = createStore(reducer);
Код отображения формы
const SimpleForm = props => {
const { handleSubmit, pristine, reset, submitting } = props;
return (
<form onSubmit={handleSubmit}>
<div>
<label>First Name</label>
<div>
<Field
name="firstName"
component="input"
type="text"
placeholder="First Name"
/>
</div>
</div>
<div>
<label>Last Name</label>
<div>
<Field
name="lastName"
component="input"
type="text"
placeholder="Last Name"
/>
</div>
</div>
<div>
<label>Favorite Color</label>
<div>
<Field name="favoriteColor" component="select">
<option />
<option value="ff0000">Red</option>
<option value="00ff00">Green</option>
<option value="0000ff">Blue</option>
</Field>
</div>
</div>
<div>
<button type="submit" disabled={pristine || submitting}>Submit</button>
<button type="button" disabled={pristine || submitting} onClick={reset}>
Clear Values
</button>
</div>
</form>
);
};
export default reduxForm({
form: 'mySimpleForm', // a unique identifier for this form
})(SimpleForm);
Что я ищу для любого другого подхода с использованием библиотеки форм redux.
Спасибо заранее.