鍍金池/ 問答/HTML/ antd modal關(guān)閉時不再調(diào)用接口

antd modal關(guān)閉時不再調(diào)用接口

我是采用以下方法來監(jiān)聽傳入數(shù)據(jù)是否發(fā)生改變:

 componentWillReceiveProps(nextProps) {
    // 判斷傳入數(shù)據(jù)是否改變
    if (JSON.stringify(nextProps.data) !== JSON.stringify(this.props.data)) {
      // 取到車系數(shù)據(jù)
      getSeriesTreeList({ brandid: nextProps.data.brandId }, (data) => {
        let { carListData } = this.state;
        // 取到車型數(shù)據(jù)
        getModelList({ seriesid: nextProps.data.seriesId }, (modelData) => {
          // 格式化車型數(shù)據(jù)
          for (let i in modelData) {
            modelData[i].value = modelData[i].vmid;
            modelData[i].label = modelData[i].name;
          }
          // 格式化車系數(shù)據(jù)
          for (let i in data) {
            data[i].value = data[i].SeriesID;
            data[i].label = data[i].name;
            data[i].isLeaf = false;
            // 組裝車系下的車型
            if (data[i].SeriesID === nextProps.data.seriesId) {
              data[i].children = modelData
            }
          }
          // 組裝品牌下的車系
          for (let i in carListData) {
            if (carListData[i].value === nextProps.data.brandId) {
              carListData[i].children = data;
            }
          }
          let arr = [nextProps.data.brandId, nextProps.data.seriesId, nextProps.data.vmId];
          this.setState({
            carListData,
            carTypeData: arr,
          });
        })
      })
    }
  }

點擊打開modal時,監(jiān)聽到數(shù)據(jù)改變就會調(diào)用接口查詢詳情,但是在關(guān)閉modal后,沒有數(shù)據(jù)傳入,此時調(diào)用接口時因為沒有查詢數(shù)據(jù),系統(tǒng)就會報錯。能有什么辦法在關(guān)閉時不再調(diào)用接口?

回答
編輯回答
兮顏

你點擊打開Modal的事件和關(guān)閉Modal的事件不是一個方法處理不就行了,關(guān)閉Modal的時候只是把Modal的visibel設(shè)置程false就行了其他的不要處理了

2018年6月2日 03:22
編輯回答
菊外人

想多了,直接判斷傳入的nextProps.data.brandId有沒有,用一個if就可以搞定,不用去設(shè)其他的屬性。

2017年4月27日 14:11
編輯回答
有你在

設(shè)一個 flag 代表 modal 關(guān)閉了沒有,處理數(shù)據(jù)前先判斷。

2017年6月22日 08:18