Javascript 空回迁警报

Javascript 空回迁警报,javascript,reactjs,Javascript,Reactjs,我正在尝试使fetch停止,并在它返回错误消息时发出警报, 因此,()=>this.toggleModal()不会执行 handleSubmit(event){ const url = 'http://localhost:8000/issue/'; var issueid = 13900; var issueid = document.getElementById("SearchTxt").value; if(issueid

我正在尝试使fetch停止,并在它返回错误消息时发出警报, 因此,
()=>this.toggleModal()
不会执行

    handleSubmit(event){
        const url = 'http://localhost:8000/issue/';
        var issueid = 13900;
        var issueid = document.getElementById("SearchTxt").value;
        if(issueid == 0){
            alert('Please insert IssueID or IssueKey')
        }else{
            var string2 = url+issueid;
            fetch(string2)
            .then(function(response) {
              return response.json();
            })
            .then((myJson) => this.setState({example: myJson},() => this.toggleModal()))
        }
}
不存在问题时返回的JSON:
{
错误消息:[
“问题不存在”
],
错误:{},

}
以防在
return response.json()取消执行您可以执行以下操作

handleSubmit(event){
    const url = 'http://localhost:8000/issue/';
    var issueid = document.getElementById("SearchTxt").value;
    if(issueid == 0 || issueid == "" || issueid == undefined || issueid == null){
        alert('Please insert IssueID or IssueKey')
        return;
    }
    var string2 = url+issueid;
    fetch(string2)
        .then(function(response) {
          const oJson = response.json();
          // your validation of the json
          if(oJson.hasOwnProperty("errorMessages") && oJson.errorMessages.includes("Issue Does Not Exist")
              return Promise.reject(oJson.errorMessages[0]); // maybe use a better way instead of this hardcoded index 

          // set state if everything was properly done
          this.setState({example: myJson},() => this.toggleModal())
        })
        .catch(error => {
            // do some alert stuff
            alert(error);
        });
}

我已经设法修复了它:

handleSubmit(事件){
常量url=http://localhost:8000/issue/';
var=13900;
var issueid=document.getElementById(“SearchTxt”).value;
如果(issueid==0){
警报('请插入IssueID或IssueKey')
}否则{
var string2=url+issueid;
提取(字符串2)
.然后(功能(响应){
返回response.json();
})
.then((myJson)=>this.conditionalChaining(myJson));
}
}
条件链接(myJson){
如果(myJson.errorMessages=='问题不存在'){
警报('问题不存在')
}否则{
this.setState({example:myJson},()=>this.toggleModal());
}

}
问题出在哪里?是否仍要使用
myJson
更新组件状态?或者完全跳过该部分?是否要执行
。然后((myJson)=>此.setState({example:myJson}
,即使您收到
errorMessage
,还是要在
response.json()之后取消执行
如果它包含此消息?我想取消执行,并在警报上显示错误消息!@Eddo否,如果该错误消息出现,我不需要更新,只需要一个带有消息Thank@r3dst0rm的警报,但toogleModal仍然会执行!不幸的是,请尝试
返回承诺.拒绝(oJson.errorMessages[0]
而不是
抛出…
弹出窗口打开时没有问题,但它一直在尝试设置状态!