文章

問題描述

在使用 Ant Design 5.x 時,如果直接使用 Modal.warning() 或其他模态方法,可能會出現下列錯誤訊息:

Warning: [antd: Modal] Static function can not consume context like dynamic theme. Please use 'App' component instead.

錯誤原因

從 Ant Design 5 開始,Modal 系列給對話相關的模态出現了 Context 依賴性問題,結果不能直接使用靜態出現的模态方法,如 Modal.warning()。而是需要將 App 對話存取出來,使用 App.useApp() 來導入模态出現功能。

解決方式

使用 App.useApp()ConfigProvider 存取出對話功能,此外需確保 ConfigProvider 包裹 App :

import React from 'react';
import { ConfigProvider, App, Button } from 'antd';

const MyComponent = () => {
    const { modal } = App.useApp();
    return (
         <Button onClick={() => modal.warning({title: "彈窗訊息"})}>
            點擊顯示彈窗
         </Button>     
    );
};


const MyApp = () => {
    return(
        <ConfigProvider theme={theme} >
            <App>
                <MyComponent />
            </App>
        </ConfigProvider>
    );
};

export default AppWrapper;

vite 是最近越來越流行的建立前端專案的手腳架,為什麼他會這麼流行呢?

  1. 快速的開發環境
  2. 即時重整
  3. 模組化開發
  4. 支援多種框架:vue、react…
  5. TypeScript 支援

結論:使用 Vite 可以帶來更快的開發速度、更好的性能,並提供了靈活的配置選項,使其成為一個吸引人的選擇。

當然安裝這些套件還要視每個人的需求來選擇,例如:一頁式網站可能就不需要安裝 router;形象網站不打 api 就不需要安裝 axios 等等。

閱讀更多

安裝 antd,默認他會幫你使用簡體中文,例如沒有table資料時,會顯示的提示文字,或者是datepicker的月份年份。每個組件都會有props可以讓你改顯示文字,但是如果是想要整個網站一起改,就可以使用ConfigProvider

閱讀更多

很久沒寫 react 了,突然發現這個多變的世界多了一個叫做 craco 的東西,不知道是幹嘛的,但是antd官網推薦要是你想要自定義主題,例如要修改他們的less,可以用 craco。

閱讀更多