реагируйте на изменение значения ясно или ложно при нажатии кнопки

#javascript #reactjs

Вопрос:

Я использую react-toastify для своей формы. в настоящее время я показываю сообщение при ошибке или сообщении об успехе. когда пользователь нажимает снова, мне нужно очистить или скрыть все типы всплывающих уведомлений. пожалуйста, проверьте приведенный ниже код.

Используемая библиотека для тостов https://www.npmjs.com/package/react-toastify

       const addRecord= (form) => {
     toast.hide(); // i need to hide all toast notification 
    const header = {
      Auth_token: `${appUserConfig.accessTokenName}=${appUserConfig.accessToken}`,
      User_name: appUserConfig.userName,
    };
    httpPost(SAVE_INVOICE, data, header)
      .then((response) => {

        if (response.status === 200) {
          toast.success('Successfully Saved', { position: toast.POSITION.TOP_RIGHT })
        }

      })
      .catch((e) => {
        console.log("e:", e);
        toast.error('Something went wrong', { position: toast.POSITION.TOP_RIGHT, autoClose: false })

      });

  }
 

согласно моему требованию, мне нужно сохранить тост с сообщением об ошибке без автоклазии. Поэтому, когда пользователь снова нажимает кнопку «Добавить», мне нужно очистить все уведомления о тостах. Как я это делаю

Ответ №1:

Возможно, вам захочется проверить его документацию для очистки всех тостов. Вот что я нашел

Ссылка: https://fkhadra.github.io/react-toastify/remove-toast

Чтобы удалить все тосты, используйте:

toast.dismiss();

В вашем контексте поступайте так.

 const addRecord= (form) => {
     toast.dismiss(); // i need to hide all toast notification 
    const header = {
      Auth_token: `${appUserConfig.accessTokenName}=${appUserConfig.accessToken}`,
      User_name: appUserConfig.userName,
    };
    httpPost(SAVE_INVOICE, data, header)
      .then((response) => {

        if (response.status === 200) {
          toast.success('Successfully Saved', { position: toast.POSITION.TOP_RIGHT })
        }

      })
      .catch((e) => {
        console.log("e:", e);
        toast.error('Something went wrong', { position: toast.POSITION.TOP_RIGHT, autoClose: false })

      });

  }