猿问

antd modal关闭时不再调用接口

我是采用以下方法来监听传入数据是否发生改变:


 componentWillReceiveProps(nextProps) {

    // 判断传入数据是否改变

    if (JSON.stringify(nextProps.data) !== JSON.stringify(this.props.data)) {

      // 取到车系数据

      getSeriesTreeList({ brandid: nextProps.data.brandId }, (data) => {

        let { carListData } = this.state;

        // 取到车型数据

        getModelList({ seriesid: nextProps.data.seriesId }, (modelData) => {

          // 格式化车型数据

          for (let i in modelData) {

            modelData[i].value = modelData[i].vmid;

            modelData[i].label = modelData[i].name;

          }

          // 格式化车系数据

          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时,监听到数据改变就会调用接口查询详情,但是在关闭modal后,没有数据传入,此时调用接口时因为没有查询数据,系统就会报错。能有什么办法在关闭时不再调用接口?


呼唤远方
浏览 798回答 2
2回答

牛魔王的故事

你点击打开Modal的事件和关闭Modal的事件不是一个方法处理不就行了,关闭Modal的时候只是把Modal的visibel设置程false就行了其他的不要处理了
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答