控制台输出错误TypeError: params[item].split
不是函数。任何帮助表示赞赏。最好的帮助是了解我在解决此问题时的错误。
routeReady() {
this.activeRoute.queryParams
.pipe(switchMap(params => {
if (!params['filter']) {
// use previous month as default
let date : Date = new Date();
date.setDate(1);
date.setMonth(date.getMonth() - 1);
this.formData.startDate = DateUtils.dateToText(date);
date.setDate(DateUtils.getDaysInMonth(date));
this.formData.endDate = DateUtils.dateToText(date);
}
['startDate', 'endDate', 'club'
, 'subscription', 'sold'].forEach(item => {
if (item in params && params[item] !== '') {
this.formData[item] = params[item];
}
});
['courts', 'groups', 'zones'].forEach(item => {
if (item in params && params[item] !== '') {
this.formData[item] = params[item].split(',');
}
});
return Promise.resolve(true);
}))
.subscribe();
}
这是我的错误:
答案 0 :(得分:2)
那是因为它不是常规对象。它有些棱角分明的东西-o。 要获得价值,您要做的。
params.get('whatever property');
以您的情况
params.get(item).split(',');
扩展我在您的情况下的工作。
['courts', 'groups', 'zones'].forEach(item => {
const value = params.get(item);
if (value) {
this.formData[item] = value.split(',');
}
});
答案 1 :(得分:1)
此代码假定params [item]是字符串:
this.formData[item] = params[item].split(',')
JavaScript字符串具有拆分方法:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split
如果它不是字符串,它将没有split方法,因此您将被告知:
params [item] .split不是函数
要检查其类型,请执行以下操作:
console.log('params[item]', params[item], typeof params[item])