как говорит Деннис, ваш код недействителен javascript. вы хотите сохранить его в объекте вместо массива
попробуйте что-то вроде этого:
const initialState = {
isLoading: false,
events: [
{ year: 2021, place: [ {id:1, name:"BD"} ]},
{ year: 2020, place: [ {id:2, name:"AMS"} ]},
],
};
case types.TOGGLE_PLACE_INFO:
return {
...state,
events: state.events.map((event) =>
event.id === action.payload.id
? {...event, place: [{...event.place, isTouched:true}]}
: event
)
}
Я изменил ваше initialState, поэтому place
теперь действителен. Затем я сопоставляю все значения, и если они совпадают, я возвращаю текущий, например, {...event}
, а затем добавляю новый ключ isTouched
, например: {...event, isTouched: true}
. затем, во-вторых, если они не совпадают, я просто возвращаю event
, дайте мне знать, если это имеет смысл. могу уточнить если нет!