newPost报错
来源:9-8 大功告成 创建文章最后流程
精慕门6182327
2021-08-18
为什么newPost会报错,我把newPost的类型改为any,就变成这样
const onFormSubmit = (result:boolean) => {
if (result) {
const { column,_id } = store.state.user
if (column) {
const newPost:any = {
title: titleVal.value,
content: contentVal.value,
column:column,
author: _id
}
}
if (imageId) {
newPost.image = imageId
}
store.dispatch(‘createPost’,newPost).then(() => {
createMessage(‘发表成功 2秒后跳转到文章’,‘success’,2000)
setTimeout(() => {
router.push(’/column/’ + column)
})
})
}
}
我把if(column) 这个判断删除了,并且newPost的类型为any才不会报错,
希望老师解答一下
2回答
-
张轩
2021-08-20
同学你好 用你的代码试了,先修改 PostProps 的定义,将
_id?:string; createdAt?:string; 设置为可选
然后在 CreatePost 中,这里你把 if (column)这个条件的结束的括号加错了,他应该是包含后面的一系列逻辑,我帮你改了一下,请看截图
注意 if (column) 括号(蓝色的结束括号)的范围。
012021-08-20 -
张轩
2021-08-19
同学你好 从错误就可以看出 你缺少了 post 的一些必选项 比如 _id 和 createdAt,但是在创建的过程中,我们是不需要这些属性的修改一下,PostProps 将一些属性更新一下,设置为可选。
export interface PostProps { _id?: string; // 等等 }
你可以修改一下,试一试,如果还不行的话,可以提供源代码(git),我在本地帮你调试下。
012021-08-19
相似问题