gpt4 book ai didi

javascript - 如何解决 ionic 框架中的类型错误

转载 作者:行者123 更新时间:2023-11-30 20:07:03 24 4
gpt4 key购买 nike

如何解决这个错误:

core.js:1449 ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'slug' of undefined TypeError: Cannot read property 'slug' of undefined

我的代码:

this.WooCommerce.getAsync("products?filter[category]=" + this.category.slug).then((data) =>{
console.log(JSON.parse(data.body));

最佳答案

对我来说,这证实了我首先所说的。你确实指向了一个可观察对象中的一个对象的 child (无论你是否知道什么是可观察对象)(可观察对象有时会一直上升到优先级列表并发生在任何其他变量的水合之前)。

所以这里是我喜欢采取的预防措施,以确保事情不会变得糟糕:将事情分开。

此外,这里有一个我喜欢在一般基础上使用的“hack”,以确保我可以不受阻碍地继续我的开发周期,并更好地了解除了“未定义”之外的地方失败的地方:

this.category['slug'];

我从来没有走到这一步,但这也是允许的: 这个['category']['slug'];

看到这是不同的,因为它实际上会返回 undefined 而不是在 JS 级别失败。

现在对我来说很明显你需要在它被评估的那一刻确定 this.category.slug 在它初始化之前不在它的生命线中:

var myFunctionToLogSlug = () => { //here you could pass this.category.slug as an arg but
//that's the same as simply calling in within the body of this method because your
//context (this) is the same, ergo the pointer and timeframe are also the same.
console.log("is this.category.slug empty ? : ", this.category.slug);
return this.category.slug;
};

this.WooCommerce.getAsync(
"products?filter[category]=" + myFunctionToLogSlug()).then(data =>{
console.log(JSON.parse(data.body));
});

一旦确定 this.category.slug 在调用时确实未定义,您可以将 this.WooCommerce.getAsync 移动到某个时间-在你知道要定义的 this.category.slug 的地方,或者将 this.category.slug 的 hydration 移动到 getAsync 的内部。

希望对您有所帮助! :)

关于javascript - 如何解决 ionic 框架中的类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52812362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com