ProCard的tabs主页,从子页返回后怎么回到对应的tabs主页

项目使用antDesign pro ,在使用ProCard的tabs属性时,点击新建进入对应的新建页面,再返回后又会回到设置的默认tab页,怎么使返回后再回到对应的tab页而不是默认页呢?

解决方案是使用sessionStorage本地缓存!

代码如下:
 1.在公共方法文件中,定义以下方法

/** 文件目录路径:src/uilts/stroage.ts */

/** 获取缓存 */
export const getItem = (key: string) => {
  try {
    const data = sessionStorage.getItem(key);
    if (!data) {
      return null;
    }
    return JSON.parse(data);
  } catch (error) {
    const data = sessionStorage.getItem(key);
    if (!data) {
      return null;
    }
    return data;
  }
};

/** 设置缓存 */
export const setItem = (key: string, item: any) => {
  try {
    sessionStorage.setItem(key, JSON.stringify(item));
  } catch (error) {}
};

2.在ProCard的tabs主页里使用上面定义的方法:

import { PageContainer } from "@ant-design/pro-layout";
import React, { useState, useEffect, useRef } from "react";
import { ProCard, ProCardTabsProps } from "@ant-design/pro-components/";
import RentHousingTableList from "./rent_housing/index";
import SecondHousingTabList from "./second_housing/index";
import NewHouseTableList from "./new_housing/index";
import parseUrl from "@/common/urlQuery";
import "./index.css";
import { getItem, setItem } from "@/uilts/storage";
// tab切换栏
const TabCards = () => {
  const [tab, setTab] = useState("1");
  const [tabPosition, setTabPosition] =
    useState<ProCardTabsProps["tabPosition"]>("top");

  const tabs = parseUrl().tabs;

  useEffect(() => {
    setTab(getItem("tabKey")); //在这里获取
  }, [tabs]);

  return (
    <PageContainer
      header={{
        title: "",
      }}
    >
      <ProCard
        tabs={{
          type: "card",
          tabPosition,
          activeKey: tab,
          onChange: (key: any) => {
            setItem("tabKey", key); // 在onChange事件里设置缓存
            setTab(key);
          },
          items: [
            {
              label: `新房房源管理`,
              key: "1",
              children: <NewHouseTableList />,
            },
            {
              label: `二手房源管理`,
              key: "2",
              children: <SecondHousingTabList />,
            },
            {
              label: `租房房源管理`,
              key: "3",
              children: <RentHousingTableList />,
            },
          ],
        }}
      />
    </PageContainer>
  );
};

export default TabCards;

3.看一下本地缓存,缓存成功就可以啦

 

这样就解决啦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值