首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >VUE 3 TS 2339 :属性xxx不存在于类型{

VUE 3 TS 2339 :属性xxx不存在于类型{
EN

Stack Overflow用户
提问于 2021-11-05 23:47:47
回答 1查看 76关注 0票数 1

我使用:带有TS的Vue3,axios,sequelize。

我正在创建一个只有1个textarea的表单,用来在墙上发布帖子,我用我的组件表单编写了这个脚本:

代码语言:javascript
复制
<template>
  <div id="PostText" class="col-12">
    <form id="postTextForm">
      <div id="PostwriteContent">
        <label for="PostContent">
          <h2>Lâchez nous vos pensées...</h2>
        </label>
        <textarea
          name="PostContent"
          id="PostContent"
          cols="65"
          rows="6"
          v-model="theNewPost.content"
          autocapitalize="sentence"
          form="postTextForm"
          maxlength="650"
          placeholder="Saisissez ici votre prose..."
          required
          autofocus
        ></textarea>
        <button class="col-9" type="button" :disabled="!isFormValid" @click="sendMyPost">Poster</button>
      </div>
    </form>
  </div>
</template>

<script lang="ts">
import axios from 'axios';

export default {
  data() {
    return {
    errorMessage: String,
      theNewPost: {
        content: String,
        userId: Number 
      }
    };
  },
  methods: {
    sendMyPost(e:any){
      e.preventDefault();
      
      console.log("testPost >>" + this.theNewPost.content);
      console.log("theNewPost >>" + this.theNewPost);

      axios.post("http://localhost:3001/api/feed", this.theNewPost)
        .then((res) =>{ 
          console.log('Post en ligne ;)' + res)
        })
        .catch((err) => {
          this.errorMessage = err.message;
          console.error("There was an error!", err);
        })

    }
  },
  computed:{
    isFormValid(){
      if (
        this.theNewPost.content !== ""
      ) {
        return true;
      } else {
        return false;
      }
    }
  },

};

</script>

但是我在使用“this”的时候有一些错误。它没有找到名称theNewPost,errorMessage,所以我不明白这一点,因为我在数据中定义了这些术语,并在V-model中使用它们。

此外,在我绑定2个函数的表单中,它们不会运行。你知道我犯了哪些错误吗?请。

谢谢;)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-06 17:57:45

要使用defineComponent()包装组件,请使用enable TypeScript support

代码语言:javascript
复制
import { defineComponent } from 'vue'

export default defineComponent({
  data() { ... },
  methods: { ... },
  computed: { ... },
})

还要注意,您的data()返回应该是文字(而不是初始化为StringNumber):

代码语言:javascript
复制
data() {
  return {
    errorMessage: '',
    theNewPost: {
      content: '',
      userId: 0
    }
  };
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69860365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档