javascript - 无法读取未定义的属性“提交”
问题描述
我正在尝试对来自多个 mqtt 主题的数据进行平均,并且在标题中出现错误,我很确定错误来自 calcavgGPSdata,但不知道为什么会抛出错误。carpath[] 也最终是空的。
const store = new Vuex.Store({
state: {
dashChartVal: {}, // temporary cache for chart data
triggerCharts: 0, // updated to trigger real time updates while on dashboard
prevPayload: [], // stores the last valid payload recieved, used for mapping
triggerMap: 0,
// array used to select data types and charts
selected: [
{
//values
},
],
carPath: [],
sensorLatData: [],
sensorLongData: [],
sumLat: 0,
sumLong: 0,
avgLat: 0,
avgLong: 0,
},
mutations: {
increaseMapTrigger: function (state) {
state.triggerMap++;
},
pushValue: function (state, data) {
if (!state.dashChartVal[data.name]) {
state.dashChartVal[data.name] = [];
}
state.dashChartVal[data.name].push({
name: data.name,
value: data.value,
});
},
shiftPoints: function (state, dataType) {
store.state.dashChartVal[dataType].shift();
},
storeSelected: function (state, data) {
state.selected = data;
},
calcAvgGPSData: function (data) {
//latitude data
store.state.sumLat = store.state.sensorLatData.reduce((a, b) => a + b, 0);
store.state.avgLat = store.state.sumLat / (store.state.sensorLatData.length - 1);
//longitude data
store.state.sumLong = store.state.sensorLongData.reduce((a, b) => a + b, 0);
store.state.avgLong = store.state.sumLong / (store.state.sensorLongData.length - 1);
console.log(
"Avg LAT:",
store.state.avgLat.toFixed(8),
", Avg LNG",
store.state.avgLong.toFixed(8)
);
// update array for latitude and longitude
this.$store.commit("addPointPath", {
pmThresh: this.$store.state.prevPayload
? this.$store.state.prevPayload
: 0,
payload: data,
});
},
addPointPath: function (state, data) {
state.carPath.push({
pmThresh: data.pmThresh,
coord: [
this.$store.state.avgLat,
this.$store.state.avgLong,
],
});
},
},
这是从 mqtt 主题收集数据并进行处理的代码
mqtt: {
"xxxx"(payload) {
if (payload != null) {
try {
if (JSON.parse(payload.toString())) {
payload = JSON.parse(payload.toString());
}
} catch (error) {
// handle NaN errors
payload = JSON.parse(payload.toString().replace(/NaN/g, '"NaN"'));
}
//negative values
}
}
},
"xxxx"(payload) {
if (payload != null) {
try {
if (JSON.parse(payload.toString())) {
payload = JSON.parse(payload.toString());
this.$store.state.sensorLatData.push(
payload.latitudeCoordinate
);
this.$store.state.sensorLongData.push(
payload.longCoordinate
);
console.log(
"LAT gga1:",
payload.latitudeCoordinate.toFixed(8),
", LNG gga1:",
payload.longitudeCoordinate.toFixed(8)
);
this.$store.commit("increaseMapTrigger");
}
} catch (error) {
alert(error, "=>", payload.toString());
// handle NaN errors
payload = JSON.parse(payload.toString().replace(/NaN/g, '"NaN"'));
}
}
},
"xxxx"(payload) {
if (payload != null) {
try {
if (JSON.parse(payload.toString())) {
payload = JSON.parse(payload.toString());
this.$store.state.sensorLatData.push(
payload.latitudeCoordinate
);
this.$store.state.sensorLongData.push(
payload.longCoordinate
);
console.log(
"LAT gga2:",
payload.latitudeCoordinate.toFixed(8),
", LNG gga2:",
payload.longitudeCoordinate.toFixed(8)
);
this.$store.commit("increaseMapTrigger");
}
} catch (error) {
alert(error, "=>", payload.toString());
// handle NaN errors
payload = JSON.parse(payload.toString().replace(/NaN/g, '"NaN"'));
}
}
},
"xxxx"(payload) {
if (payload != null) {
try {
if (JSON.parse(payload.toString())) {
payload = JSON.parse(payload.toString());
this.$store.state.sensorLatData.push(
payload.latitudeCoordinate
);
this.$store.state.sensorLongData.push(
payload.longCoordinate
);
console.log(
"LAT gga3:",
payload.latitudeCoordinate.toFixed(8),
", LNG gga3:",
payload.longitudeCoordinate.toFixed(8)
);
this.$store.commit("increaseMapTrigger");
}
} catch (error) {
alert(error, "=>", payload.toString());
// handle NaN errors
payload = JSON.parse(payload.toString().replace(/NaN/g, '"NaN"'));
}
}
this.$store.commit("calcAvgGPSData");
},
},
解决方案
推荐阅读
- c# - 为什么当应用程序在我的计算机上运行时 System.DateTime.Now 工作,但当我通过工作组启动应用程序时不工作?
- spring-boot - spring-boot-starter-quartz 指定不同的数据库连接器?
- html - css中的三倍大于选择器是什么?
- java - 如何在函数中用对象填充数组,而我在主函数中声明了这个数组?
- django - 我可以使用 Django 动态覆盖静态文件吗?
- raster - 在写入栅格时保留图层名称
- excel - excel中的时间戳基于两列中先前的单元格条目
- html - 当我需要向下滚动站点时出现水平滚动
- objective-c - 如何在objective-c中导入Metal?
- python - 在 Python 3.6.8 中按 32 右移返回不正确的值