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)这个条件的结束的括号加错了,他应该是包含后面的一系列逻辑,我帮你改了一下,请看截图

//img.mukewang.com/szimg/611f0501099fcbdc13600920.jpg

注意 if (column) 括号(蓝色的结束括号)的范围。

0
1
精慕门6182327
感谢,没想到是这个错误
2021-08-20
共1条回复

张轩

2021-08-19

同学你好  从错误就可以看出 你缺少了 post 的一些必选项 比如 _id 和 createdAt,但是在创建的过程中,我们是不需要这些属性的修改一下,PostProps 将一些属性更新一下,设置为可选。

export interface PostProps {
   _id?: string;
   // 等等
}

你可以修改一下,试一试,如果还不行的话,可以提供源代码(git),我在本地帮你调试下。

0
1
精慕门6182327
老师,还是不行,改了之后Cannot find name 'newPost'. 这是我的源代码https://gitee.com/Rascalxxx/zheye
2021-08-19
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程