簡體   English   中英

Ant 設計表單“警告:不推薦使用`回調`。請改為返回承諾。” 自定義規則錯誤

[英]Ant design Form "Warning: `callback` is deprecated. Please return a promise instead." Error in custom rules

我對表單元素做了自定義規則。 但是當我使用帶有承諾的自定義錯誤消息時,它會給出該錯誤。 我該怎么做才能修復它? 我的表單元素:

該規則是檢查 PriceMax 和 PriceMin。 並驗證 PriceMax 是否大於 PriceMin。 如果不是,它應該向我顯示錯誤消息。所以我使用了 Promise 但它在控制台中發出警告,例如:“警告: callback已被棄用。請返回一個承諾。” 自定義規則錯誤”

 <Form.Item name="PriceMin" label="Minimum fiyat" required>
                  <Input
                    type="number"
                    name="Input"
                    placeholder="En düşük fiyat"
                    onChange={(e) => updateForm(e.target.value, "PriceMin")}
                  />
                </Form.Item>
                <Form.Item
                  name="PriceMax"
                  label="Maximum fiyat"
                  dependencies={["PriceMin"]}
                  rules={[
                    {
                      required: true,
                      message: "Please confirm your password!",
                    },
                    ({ getFieldValue }) => ({
                      validator(rule, value) {
                        if (
                          parseInt(value) < parseInt(getFieldValue("PriceMin"))
                        ) {
                          return Promise.reject(
                            "Maksimum fiyat minimum fiyattan az olamaz!"  //When i delete that row its fix warning, but i need have that error message.
                          );
                        }
                      },
                    }),
                  ]}
                >
                  <Input
                    name="Input"
                    type="number"
                    disabled={
                      MyForm.getFieldValue("PriceMin") === undefined ||
                      MyForm.getFieldValue("PriceMin") === ""
                        ? true
                        : false
                    }
                    placeholder="En yüksek fiyat"
                    onChange={(e) => updateForm(e.target.value, "PriceMax")}
                  />
                </Form.Item>

您必須按照示例中所示進行操作
https://ant.design/components/form/#components-form-demo-register
驗證器應始終返回成功和錯誤的承諾

({ getFieldValue }) => ({
    validator(rule, value) {
        if (parseInt(value, 10) < parseInt(getFieldValue("PriceMin"), 10)) {
            return Promise.reject(
                  "Maksimum fiyat minimum fiyattan az olamaz!");
        }
        return Promise.resolve();
    }
})

你也錯過了 parseInt 中的一個基數參數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM