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秒就会从服务器收到一次数据:我通过计算出的属性从中将数据拉入组件内部:计算结果:{...
问题出在这里