У меня есть редукционная форма, называемая addContactForm
. Эта форма прослушивает некоторые действия в моем приложении через плагин. Смотрите ниже код для иллюстрации:Редукс-форма: Значения значений формы из состояния
/reducers/index.js
import { combineReducers } from 'redux';
import { reducer as reduxFormReducer } from 'redux-form'
import AddContactFormPlugin from './add-contact-form-plugin';
const rootReducer = combineReducers({
form: reduxFormReducer.plugin({
addContactForm: AddContactFormPlugin
})
});
export default rootReducer;
/reducers/add-contact-form-plugin.js
import { SET_CURRENT_CONTACT, CLEAR_CURRENT_CONTACT } from '../constants';
export default function (state, {type, payload}) {
switch (type) {
case SET_CURRENT_CONTACT:
// !!! MY PROBLEM IS ON THE NEXT LINE
return {...state, values: { ...payload }};
case CLEAR_CURRENT_CONTACT:
return {...state, values: getEmptyValues()};
default:
return state;
}
}
function getEmptyValues() {
return {
firstName: '',
lastName: '',
phone: ''
}
}
Для того, чтобы выяснить, что происходит здесь: когда действие с типом SET_CURRENT_CONTACT перетекает в этом редуктор, я установил значение формы которые были выбраны пользователем. Эта часть работает правильно.
ОДНАКО, форма теперь обозначена как нетронутая & & грязный. В результате моя кнопка отправки не отключена, что на самом деле должно быть до тех пор, пока пользователь не примет какие-либо изменения.
Так что мой вопрос:: как я могу обновить состояние формы, чтобы он был отмечен как нетронутый?
(или недействительный я думаю, но нетронутые чувствует себя как лучший вариант)
Я попытался просто установить значение в государственном объекте, но это ничего не делает: return {...state, values: { ...payload }, pristine: true };
Если я использую неправильный подход здесь, я также хотел бы обратить внимание на правильное направление.
Спасибо за размещение решения для этого. – cantera