javascript - Vue - 创建钩子中的错误:“TypeError:无法读取未定义的属性'then'”
问题描述
我试图在对我的 wordpress 后端进行 api 调用之前设置一个 url 参数,但是我在 created hook: "TypeError: Cannot read property 'then' of undefined" 中遇到错误。我究竟做错了什么?
搜索页面.Vue
export default {
props: {
page: {
type: Number,
required: true
}
},
data() {
return {
postsRequest: {
type: 'posts',
params: {
per_page: this.$store.state.site.posts_per_page,
page: this.page,
search: null
},
showLoading: true
},
totalPages: 0,
}
},
computed: {
getTerm() {
return this.$route.query.search
},
posts() {
if (this.getTerm) {
return this.$store.getters.requestedItems(this.postsRequest)
}
},
title() {
return this.getTerm ? this.getTerm : ''
}
},
methods: {
getPosts() {
return this.$store.dispatch('getItems', this.postsRequest)
},
setPostsRequestParams() {
this.postsRequest.params.search = this.getTerm
},
setTotalPages() {
this.totalPages = this.$store.getters.totalPages(this.postsRequest)
}
},
created() {
this.setPostsRequestParams().then(() => this.getPosts()).then(() => this.setTotalPages())
}
}
</script>
this.setPostsRequestParams().then(() => this.getPosts()).then(() => this.setTotalPages())
给了我错误。
基本上我希望能够从 url ( getTerm()
)中获取参数值,postsRequest.params.search
在进行 api 调用之前将其设置在数据中,然后运行getPosts()
.
抱歉,如果这是一个愚蠢的错误,仍在学习。
解决方案
看起来您希望该方法返回一个承诺。目前,它没有返回任何东西。如果希望对.then
执行操作this.setPostsRequestParams()
,则setPostsRequestParams
需要返回类似于 的内容IPromise<[desired return type]>
。
推荐阅读
- javascript - 为什么我的正则表达式忽略每个匹配项中的最后一个字符
- datetime - 无法在 talend 中的 tfileinputdelimited 中创建日期时间
- ios - 具有相同凭据的多个子域的 iOS 密码自动填充
- java - Apache XMLSchema 核心 XSD/XML 解析器将根元素显示为所有子元素的父元素,而不是其直接父元素
- flutter - 无法取消 UPI 付款 Razorpay Flutter
- javascript - 知道何时添加或删除自定义事件?
- html - 无法发送包含指向多个页面的导航栏的可查看 html 文件
- spring - Spring Boot REST 端点返回接口(使用 Jackson 序列化多态类型)
- css - 添加后我的 CSS 背景图像未显示
- java - System.exit(0) 导致缓存或内存问题?