我是采用以下方法来监听传入数据是否发生改变: 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后,没有数据传入,此时调用接口时因为没有查询数据,系统就会报错。能有什么办法在关闭时不再调用接口?
添加回答
举报
0/150
提交
取消
