簡體   English   中英

成功提交表單時如何關閉模式?

[英]How to close a modal when submit a form successfully?

我有一個彈出窗口。 當用戶第一次進入頁面時,會出現一個模式。

此模式有一個表格,需要填寫此表格。 當用戶填寫表格並進入不同的頁面時,模式沒有打開,也很好。 所以,我的模態工作非常好。 它會自動打開,用戶無法關閉它。 但這是問題所在,我也無法關閉它! 我想要的是當用戶發送表單並返回200 OK時,模式將關閉。

我該怎么做?

let handleSubmit = async (e) => {
    e.preventDefault();
    try {
      let res = await fetch(
        process.env.REACT_APP_ENDPOINT + "user/me/contract",
        {
          method: "POST",
          headers: {
            "Content-Type": "application/json",
            Authorization: `Bearer ${localStorage.getItem(
              "fray_access_token"
            )}`,
          },
          body: JSON.stringify({
            name: name,
            surname: surname,
            email: email,
          }),
        }
      );
      let resJson = await res.json();
      if (res.status === 200) {
        console.log("CLOSE THE MODAL IN HERE");
        console.log("CLOSE THE MODAL IN HERE");
        console.log("CLOSE THE MODAL IN HERE");
      } else {
        console.log("Some error occured");
      }
    } catch (err) {
      console.log(err);
    }
  };

...
return(..
<Modal backdrop="static" isOpen={!modalOpen} size="lg" id="modal">
          <ModalHeader>Hoşgeldiniz!</ModalHeader>
          <ModalBody>
<Input
                      required
                      type="text"
                      value={name}
                      placeholder="İsim"
                      onChange={(e) => setName(e.target.value)}
                    />
...
...
</ModalBody>
</Modal>

如果你的 state 是這樣的:

const [modalOpen, setModalOpen] = useState(false)

比你需要這樣做:

if (res.status === 200) {
      setModalOpen(false)
      } else {

暫無
暫無

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

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