【发布时间】:2023-04-09 09:47:01
【问题描述】:
我在我的 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());
});
};
}
我已经在我的 Reducer 中写了这个案例:
case FETCH_PRODUCTS_SUCCESS:
return {
...state,
appState: {
...state.appState,
isCommentsLoadingFinished: true
},
domainData: { ...state.domainData, products: action.products }
};
我的问题是我无法理解 action.products 有效负载是否违反了“不可变减速器”原则。我不确定我的 response.data 不能在任何地方更新,除了我的减速器。因此,在这种情况下,它将违反“不可变减速器”原则。
请告诉我在这种情况下我是否可以违反“不可变减速器”原则。而且,如果违反了,我该怎么办? 提前谢谢你)
【问题讨论】:
标签: javascript reactjs react-native redux