IE浏览器中的反应性问题

问题描述 投票:0回答:1

Vuex存储库中每隔10秒就会从服务器收到一些数据:

通过它,我通过计算出的属性将数据拉入组件内部:

 computed: {

    trackingStatusId: function () {
      return this.$store.state.tracking.trackingServerData.tracking_status_id;
    },
  },

接下来,我尝试在方法内部使用此数据:并且方法本身已附加到html块(<i class="state" :style="getIndicatorWidth()"></i>)中的样式中>

  methods: {

    getIndicatorWidth: function () {

      function widthCalculate(currentTrackingStatusId){

        console.log(currentTrackingStatusId);

      }

      return widthCalculate(this.trackingStatusId);

    },
  },

现在,我们在上面的代码中注意这一行:

console.log(currentTrackingStatusId);

如果我从服务器获取更改的数据,则控制台日志中的值将在除IE-11(及以下版本)以外的所有浏览器中反应性地更改。

从服务器获取数据如下:(挂在生命周期挂钩mounted ()上)

methods: {

    getTrackerIntervalData () {

        setInterval(()=>myTimer(this), 5000);

        function myTimer(th) {
             return axios.get("https://seo-gmbh.eu/couriertracker/json/couriertracker_api.php?action=get_tracking_data&key_id=" + th.$route.params.tracking.toLowerCase() , {
             })
            .then(response => {
              th.$store.commit('tracking/setTrackingServerData', response.data.data.tracking_data);
            })
            .catch(function (error) {
              console.log(error);
            });
        }
    },
  }

Vuex存储库:

const axios = require(“ axios”);

export const state = () => ({

    trackingServerData: null,

});

export const mutations = {

    setTrackingServerData (state, trackingServerData) {
        state.trackingServerData = trackingServerData;
    },
};

我还重复了来自中间件的第一个请求,以便能够在渲染DOM树时使用数据:

导出默认功能({$ axios,req,存储,路由}){

  if(req != undefined) {
      store.commit('setIsFirstServerLoad', true);
  }

  else{
      store.commit('setIsFirstServerLoad', false);
  }

  if(route.name == "language-tracker-tracking") {

      return $axios.get("https://seo-gmbh.eu/couriertracker/json/couriertracker_api.php?action=get_tracking_data&key_id=" + route.params.tracking.toLowerCase(), {})
          .then(response => {
              store.commit('tracking/setTrackingServerData', response.data.data.tracking_data);
          })
          .catch(function (error) {
              console.log(error);
          });

  }

}

因此,如果您更深入地研究这种情况,则表明IE浏览器仅正确计算了从中间件接收的代码:

введите сюда описание изображения在上面的屏幕截图中,您可以观察到答案8-是正确的-答案3通常不清楚其来源。(甚至从存储库的最后一页开始,即使我在那里有一个单独的存储库。我也不知道为什么会这样。)题:为什么在IE浏览器中无法正确更新数据?如何解决此问题,或者有可能解决此问题-以其他方式实施所有操作?

Vuex存储库中每隔10秒就会从服务器收到一次数据:我通过计算出的属性从中将数据拉入组件内部:计算结果:{...

javascript node.js vue.js nuxt.js
1个回答
0
投票

问题出在这里

© www.soinside.com 2019 - 2024. All rights reserved.