Я довольно новый парень для редукции. Я немного смущен тем, что как изменить эти данные, не изменяя его.Как изменить вложенный объект, не изменяя его в Redux
мой структура данных, как этот
{
postOwnwerName:"",
postTags:[],
photos:[
{
id:dc5c5d7c5s,
caption:null
},
{
id:dccccccc5s,
caption:null
}
],
}
Whent эта функция пожаров
this.props.updateCaption (ID, заголовок)
мой редуктор следует установить данные в соответствии с идентификатором в данных структура без мутаций
import * as types from '../Actions/actionTypes';
const initialState = {
postOwnwerName:"",
postTags:[],
photos:[],
};
export default function uploadReducer(state=initialState,action) {
switch (action.type){
case types.SETPHOTOSTATE:
return Object.assign({},state,{ photos:state.photos.concat(action.payload) });
case types.SETCAPTIONTEXT:
//this method is not working
return (
Object.assign({},state,state.photos.map((data) => {
if(data.id == action.payload.id){
return Object.assign({},data,{caption:action.payload.caption})
}else{
return data
}
}))
)
default:
return state
}
}
Thx братан Ну я прошу предложение, погода Object.assign хорошо или любая библиотека будет лучше – Nane
Но, похоже, это замедлить мою работу, печатая – Nane
Вы можете использовать оператор распространения в качестве альтернативы объекта. назначьте, если вы используете es6. Я не использую библиотеку, которая заменяет Object.assign. извините, я понятия не имею о библиотеке. – duwalanise