Я пытаюсь обновить свойство объекта, который вложен в массив моего состояния редуктора.Редуктор получает хорошую полезную нагрузку, но мой взгляд не обновляется.
Вот фрагмент того, что я пытаюсь сделать:
//reducers.js
case UPDATE_ROOM_TMP: {
const roomIndex = state.config.rooms.findIndex(room => room.id === action.payload.id);
return {
...state,
rooms: state.config.rooms.map(
(room, i) => i === roomIndex ? { ...room, tmp : action.payload.tmp} : room
)
}
}
Вот структура редукторасостояние:
config: {
...
rooms: [
{
...,
tmp: 22
}
]
}
Действие для обновления редуктора:
export const updateRoomTmp = ({ targetTmp, roomId }) => {
return {
type: UPDATE_ROOM_TMP,
payload: { targetTmp, roomId },
};
};
Функция, которая вызывает действие:
increaseTmp = () => {
const tmp = this.props.config.rooms[this.roomIndex].targetTmp + 1
this.props.updateRoomTmp({targetTmp: tmp, roomId: this.props.room.id});
}
Текст, который представляет новое значение
<Text>{this.props.config.rooms[this.roomIndex].targetTmp}</Text>
Как я подключаюсь к конфигу:
const mapStateToProp = ({ allConfig }, props) => {
const { config } = allConfig;
return { config };
};
Так что проблема в том, что при вызове увеличенияTmp редуктор получает хорошую полезную нагрузку, но никогда не обновляется, поэтому текст необновляться либо.