點擊任何按鈕都會觸發Formik中的handleSubmit函數
P粉041881924
P粉041881924 2023-09-10 23:47:25
0
1
400

我想在使用formik訂餐專案中實作一個用於驗證有效性的檢查表單,但是我遇到了建立兩個按鈕的問題。無論點擊哪個按鈕,都會呼叫handleSubmit。我該如何解決這個問題?

函數goBack只是將狀態設為false。

export default function Checkout(props) { function handleSubmit(event) { // event.preventDefault(); console.log("Hello"); } return (  {(props) => ( 
Back Confirm
)}
); }
export default function CloseButton(props) { return ; }
export default function OrderButton(props) { return  }

我希望CloseButton關閉表單並返回訂單列表,但它只呼叫由Formik元件建立的handleSubmit,而不是props中的函數。我閱讀了文檔,但關於使用兩個按鈕創建formik的內容以及與我的問題相關的內容都沒有提到。

P粉041881924
P粉041881924

全部回覆 (1)
P粉662361740

看起來在props.goBack中,你想引用元件的props,但實際上使用的是Formik 內部的props(因為它是最近的props聲明)。由於 Formik 的 props 上沒有定義goBack,所以你將undefined作為onClick處理程序傳遞給按鈕。

解決這個問題最直接的方法是重命名其中一個 props 變量,我建議將 Formik 的 props 命名為formikProps或類似的名稱。

在我看來,更好的方法是解構 props(在這兩種情況下,雖然只有一種是必要的),像這樣:

export default function Checkout({ goBack }) { // ... return (  {(props) => ( // ... Back // ... )}  ) }
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!