【发布时间】:2020-09-04 01:14:44
【问题描述】:
我正在这样做:
case LOAD_PAGES:
return {
...state,
pages: [...state.pages, action.pages],
};
我有一个组件,每次我进入它时,它都会将相同的数据发送到商店,所以我会得到很多重复的数据。
pages 数组如下所示:
pages: [
{
key: 0,
menuName: 'Home',
pageType: 'HomePage',
dataIndex: 'HomePage0'
},
{
key: 1,
menuName: 'Employer Chat',
pageType: 'EmployerChat',
dataIndex: 'EmployerChat1'
},
]
这是 React 组件:
const handlePageLoad = () => {
if (siteById.data) {
siteById.data.pages.map((p, index) => {
return loadPagesAction({
key: index,
menuName: p.menuName,
pageType: p.pageType,
dataIndex: p.pageType + index,
});
});
}
};
useEffect(() => {
if (siteById.data.pages.length) {
handlePageLoad();
}
}, []);
有什么想法吗?
【问题讨论】:
-
为什么要为所有页面发送
loadPagesAction?你的目的是什么 -
@ShubhamKhatri 我必须根据这些页面呈现一个菜单列表。
-
所以如果我理解正确的话,每个组件都是一个页面,当页面加载时,谁希望在 redux 中更新状态以便更改菜单?
-
好像你要返回 state.pages 两次:
(1st)...state, pages: [(2nd)...state.pages
标签: javascript reactjs ecmascript-6 redux react-redux