Я получаю список продуктов с сервера в моем RN-приложении.Это массив объектов:
[{
"id": 1,
"title": "product1",
"img": "img1.png",
"text": "lorem ipsum 1"
},
{
"id": 2,
"title": "product2",
"img": "img2.png",
"text": "lorem ipsum 2"
}]
Я получаю данные следующим образом:
export function fetchProducts() {
return (dispatch: Function) => {
return apiClient
.get("products/")
.then(response => {
dispatch(fetchProductsSuccess(response.data));
})
.catch(error => {
showErrorMessage(FETCH_CATALOGUE_FAIL_MESSAGE);
dispatch(fetchProductsFail());
});
};
}
Я написал этот случай в своем редукторе:
case FETCH_PRODUCTS_SUCCESS:
return {
...state,
appState: {
...state.appState,
isCommentsLoadingFinished: true
},
domainData: { ...state.domainData, products: action.products }
};
Моя проблема в том, что я не могу понять, что полезная нагрузка action.products нарушаетпринцип «неизменный редуктор» или нет.Я не уверен, что мои response.data не могут быть обновлены нигде, кроме моего редуктора.Таким образом, это нарушит принцип «неизменяемого редуктора» в этом случае.
Пожалуйста, скажите, могу ли я нарушить принцип «неизменяемого редуктора» или нет в этом случае.И, если это нарушает, как я должен делать?Заранее спасибо)