如何在 Ionic Vue 上将其设为一种类型?

Posted

技术标签:

【中文标题】如何在 Ionic Vue 上将其设为一种类型?【英文标题】:How do i make this a type on Ionic Vue? 【发布时间】:2021-08-07 03:35:48 【问题描述】:

我如何使这个描述成为一种类型?这是我的代码,它给了我一个错误,说“类型' takePhoto():Promise; '上不存在属性'描述'” 脚本

   <script lang="ts">
    import 
    IonPage,
   IonToolbar,
    IonContent,
   IonButton,
   IonTextarea,
   from "@ionic/vue";

  import  storage, auth, db, arrayUnion  from "../firebase";
   import  Plugins, CameraResultType, CameraSource  from "@capacitor/core";
  import postData1 from "../firebase";
  import postData2 from "../firebase";
  import userPosts from "../firebase";
  const  Camera  = Plugins;



    export default 
    name: "Tab1",
   components: 
   IonToolbar,
     IonContent,
   IonPage,
     IonButton,
      IonTextarea,
       ,
       data() 
       return 
        description: "",
       ;
      ,

      methods: 
      async takePhoto(): Promise<void> 
      const image = await Camera.getPhoto(
      resultType: CameraResultType.Base64,
      source: CameraSource.Camera,
      quality: 60,
      );

 
       if (image?.base64String) 
       const user = auth.currentUser;

       const id = uuidv4();

       const filePath = `post/$id.$image.format`;

       const storageRef = storage.ref();

       await storageRef
      .child(filePath)
      .putString(image.base64String, "base64");

      const url = await storageRef.child(filePath).getDownloadURL();
    
      const postData = 
      uid: user?.uid,
      id: id,
      image: url,
      description: this.description
      ;

      const addPost = async (post: any) => 
      await db.collection("post").doc().set(post);
      await db
        .collection("users")
        .doc(user?.uid)
        .update(
          posts: arrayUnion(post),
        );
      await userPosts();
      await postData1();
      await postData2();
      return true;
    ;

    addPost(postData);
  
 ,
 ,
 ;
 </script>

抱歉,有这么多代码。但是有没有办法我可以解决这个问题或以不同的方式做到这一点。我一直在尝试移动一些代码,但没有成功

【问题讨论】:

【参考方案1】:

你需要使用defineComponent

import  defineComponent  from "vue";

export default defineComponent(
   name: "Tab1",
   components:  ,
   data:  ,
   methods:  ,
);

【讨论】:

这不起作用,或者我尝试时做错了,帖子页面不再打开了【参考方案2】:

使用 setup() 代替数据和方法

import  defineComponent  from "vue";
export default defineComponent(
   name: "App",
   components: ,
   setup() 
    // all your data and methods code here
  
);

【讨论】:

以上是关于如何在 Ionic Vue 上将其设为一种类型?的主要内容,如果未能解决你的问题,请参考以下文章

vue-cli2.X中引入高德地图,将其设为全局对象

我如何将其设为 UDF

在Dart / IntelliJ Idea中如何在错过退货时将其设为错误?

关闭 mysql 端口:3306 并将其设为本地

从列中删除所有值并将其设为空白 [重复]

我如何在谷歌云 TPU 上将 COCO 数据集转换为一组 TFRecords