Я занимаюсь разработкой веб-приложения с использованием React и Redux в качестве интерфейсной среды JavaScript.У меня возникла небольшая проблема с отображением представления и обновлением значения состояния / хранилища Redux.
У меня есть поле ввода, которое обновляет значение состояния Redux.Это обработчик события для onChange моего текстового поля.
_handleNameInput= (event) => {
this.props.updateField({
name: 'name',
value: event.target.value,
})
}
В редукторе я обновляю поле состояния следующим образом:
case RESTAURANT_CATEGORY_UPDATE_FIELD: {
let freshState = { ...state };
_.set(freshState, action.payload.name, action.payload.value);
return freshState;
}
Я использую Lodash для обновленияполе объекта состояния.
Это мое состояние по умолчанию
let defaultState = {
name: ''
}
Когда пользователь вводит данные, я отображаю значение текущего состояния в представлении, как это.
<h1>Name is: {this.props.name}</h1>
Приведенный выше сценарий работает совершенно нормально.Он отображает живые изменения, в то время как я также изменяю значение ввода.Проблема началась, когда я использую вложенный объект в состоянии.Я обновил defaultState до этого.
let defaultState = {
form: {
name: '',
}
}
Затем в обратном вызове я обновляю вот так.
this.props.updateField({
name: 'form.name',
value: event.target.value,
})
Это обновление значений состояния / хранилища избыточного значения вложенного свойстваобъект.Проблема в том, что когда я отображаю живые изменения, как это
<h1>{this.props.form.name}</h1>
Это не обновляет / не отображает представление.Как я могу это исправить?