問題描述

在使用 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;

0

不知道大家有沒有遇過,假設你的一個頁面上有不只一個 input,那麼你在 android 裝置上的 chrome 輸入好內容後,直接按下軟鍵盤的 enter(回車鍵),他竟然就自己跳到下一個 input 並且 focus 在那裡…

閱讀更多
0

呼叫api上傳圖片時候如果要顯示進度條,目前有兩種方式可以加入偵聽事件,

  1. 使用js原生的 XMLHttpRequest
  2. 使用axios

其實axios也只是把偵聽事件的名稱改掉而已,背後做法應該是一樣的XD

閱讀更多
0

我們在串接綠界資訊的時候,遇到一個問題就是綠界的文件上寫,此方法要使用前端的post方法,但是我用call api的post方法去打,卻回應跨域錯誤,寫信綠問綠界,又一問三不知~

好在後來終於被後端工程師提醒才明白,在上古時期的網頁開發是沒有分前後端的,所以post方法都是用<form>標籤去做,我整個大開眼界欸,雖然還不懂這其中的差別,但總歸是成功了。

閱讀更多
2+

網頁需要用到相機的場景還滿多的,像是身份驗證需要拍證件照上傳、發文、留言,是很基本的網頁應用。

閱讀更多
1+

搭上NFT熱潮,發現有一些網站開始主打不用自己寫智能合約,也可以製作NFT,ThirdWeb就是其中一個。

但我們用ThirdWeb上傳好NFT之後,看到他提供給消費者Mint的介面有點陽春,好在他們本來就是主打可以自己使用api的方式去打他們的各種功能,例如Mint、連結錢包、查詢NFT數量之類的。

閱讀更多
0

像股票一樣,虛擬幣也有已經開發好可用的即時蠟燭圖,TradingView這個網站讓我們甚至不用安裝套件,就可以直接嵌入任何網站。

但是react是es6 module,所以沒辦法直接用他官網的範例(CDN)直接貼上,所以我們需要改寫一下做成component方便放在各頁面中使用。

閱讀更多
0

我們通常家總會使用reduce來處理,但是如果你的陣列裡面是放物件,就要加上參數。

閱讀更多
0

因為真的很常用到,像是你要禁止人家密碼輸入中文字、驗證是不是輸入正確的手機號碼…等,每次都要上網查很麻煩,這邊就定期更新有用到的。

閱讀更多
0

這篇我光是文章標題就想好久,到底要怎樣一句話就包含所有關鍵字然後說明我到底遇到什麼問題(乾笑

是這樣的,因為最近接一個網頁遊戲的案子,如果有贏的話就要連續播放「叮叮叮叮」的聲音來後開始得分跑數字。

業主給我的 mp3 檔案只有「叮」一聲,所以我要依照玩家贏多少分,「叮」這個聲音就要看我得幾分,就跑幾次,也可以每十分跑一次拉,不然跑太久,反正這是細節。

閱讀更多
0