[英]Redux state not updating in react component
多次看到这个问题,但我有一个案例,其中已经实施了许多建议的修复程序。
商店platform
部分正在被一组异步函数调度操作所改变。
export const actionHandlers: ActionHandler<PlatformActionTypes, IPlatformState> = {
[PlatformActionTypes.SET_PRODUCT]: (state: IPlatformState, action: ISetProductAction) => ({ ...state, product: action.payload }),
[PlatformActionTypes.SET_PRODUCT_GROUPS]: (state: IPlatformState, action: ISetProductGroupsAction) => ({ ...state, productGroups: action.payload }),
[PlatformActionTypes.TOGGLE_SELECTED_PRODUCTS]: (state: IPlatformState, action: IToggleProductAction) => ({ ...state, productGroups: action.payload }),
[PlatformActionTypes.SET_PRODUCT_GROUP_DATA]: (state: IPlatformState, action: ISetProductGroupData) => {
const { title } = action.payload;
const index = state.productGroups.findIndex((group) => group.title = title);
state.productGroups.splice(index, 1, action.payload);
return state;
}
};
export default function designstartReducer(state: IPlatformState = INITIAL_STATE, action: IPlatformAction) {
const handler = actionHandlers[action.type];
return handler ? handler(state, action) : state
}
容器
const mapDispatchToProps = {
onFetchProductDetails: fetchPlatform,
};
const mapStateToProps = (state: IAppState) => ({
...state.platform,
});
const connected = connect(mapStateToProps, mapDispatchToProps)(Platform);
export default analytics.trackPage({ componentName: 'Platform' })(connected);
api 响应后的 Redux 开发工具:
尽管 Redux Dev 工具显示减速器正在工作并且存储包含获取的数据,但我终其一生都无法弄清楚为什么我的组件中仍然有初始状态对象。
我能想到的一个原因是 state.platform 形状没有改变,因此没有在组件中触发更新?
尝试在具有相同操作类型的减速器分支中构建“平台”的新副本。
是的。 我一生中最大的男生错误。
我的商店创建是在组件的渲染方法中触发了大量重新渲染,这意味着商店正在被重置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.