動態(tài)菜單

主要涉及文件

.
├── config
    ├── config.ts    
└── src
    ├── app.tsx

動態(tài)菜單

由官網(wǎng)從服務器請求菜單可以完成動態(tài)菜單,但是獲得的菜單的icon是無效的,這個需要自己渲染。
具體實現(xiàn)如下

### src/app.tsx ##########
// 此處使用的是在 getInitialState 函數(shù)里面增加這個動態(tài)菜單的邏輯
import { HeartOutlined, DislikeOutlined } from '@ant-design/icons';    //  1. 引入需要的

const icons = {
  heartOutlined: <HeartOutlined />,
  dislikeOutlined: <DislikeOutlined />
}

......
 const fetchMenu = async () => {
    try {
      const menuList = await getMenu();
      const data = menuList.data.map((m: Object) => {
        const item = m;
        item.icon = icons[item.icon];                              //  2. 根據(jù)自己所需引入并寫入,這里使用的策略模式
        return m;
      });
      return data;
    } catch (error) {
      history.push('/user/login');
    }
    return undefined;
  };

...
// 渲染寫入菜單
return {
   onPageChange: () => {
      const { currentUser } = initialState;
      const { location } = history;
      // 如果沒有登錄,重定向到 login
      if (!currentUser && location.pathname !== '/user/login') {
        history.push('/user/login');
      }
    },
    menuDataRender: () => initialState.menuData,                     // 3. 寫入
    menuHeaderRender: undefined,
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容