Использование Sweet Alert в качестве window.confirm - PullRequest
1 голос
/ 02 апреля 2020

У меня проблемы с поиском способа использовать сладкое оповещение в качестве обещания разрешить возможное дело, вот что я пытаюсь сделать

function void continueOn(){

    return swal({
        title: "Continue?",
        text: "Do you want to continue?",
        icon: "warning",
        buttons: ["no","yes"],
    }).then((result) => { return result})
}

return (
    <Button 
        onclick={() => {
            if(!doContinue || continueOn()){
                console.log("Here")
            }
        }}

)

Что происходит, когда он нажимает continueOn ( ) он действительно продолжается до того, как пользователь сможет ответить, хочет он продолжить или нет. Я хочу проверить, находятся ли они в режиме doContinue, прежде чем я напрямую их укажу. Так что порядок имеет значение.

1 Ответ

1 голос
/ 02 апреля 2020

Проверьте этот пример кода:

const doContinue = false;

const continueOn = () => {
    return swal({
        title: "Continue?",
        text: "Do you want to continue?",
        icon: "warning",
        buttons: ["no","yes"],
    })
}

class App extends React.Component {
  render() {
    return (
      <button onClick={() => {
          if(!doContinue){
            continueOn()
            .then(result => {
              // Here do what you want  
              console.log(result)
            })                
          } else{
            console.log("Popup not shown")
          }
      }}
      >Continue</button> 
    );
  }
}

ReactDOM.render(
  <App />,
  document.getElementById("react")
);
<div id="react"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js"></script>
...