使用点差运算符时,如何防止Redux上出现重复项?

我正在这样做:

    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();
    }
  }, []);

有任何想法吗?

评论