Maison  >  Questions et réponses  >  le corps du texte

API de composition Vue 3 - la propriété calculée renvoie un élément non défini

À l'aide de l'API de composition Vue 3, comment renvoyer des propriétés firstDigit 的计算值?计算属性中的关键字 thisundefined 但是当我将 this 排除在外时,我收到错误 fourDigits is not Defined.

<script setup>
import { computed, reactive } from 'vue'

const input = reactive({
    fourDigits: Array(1,2,3,4),
    firstDigit: computed(() => {
      return this.fourDigits[0] <===== `this` is undefined but if I leave `this` out, then `fourDigits` is undefined.
    })
</script>

<template>
   <div>
     <pre>
       {{JSON.stringify(input.firstDigit, null, 2)}}
     </pre>
   </div>
</template>


P粉662089521P粉662089521354 Il y a quelques jours581

répondre à tous(2)je répondrai

  • P粉557957970

    P粉5579579702023-11-01 14:49:47

    Si je dois utiliser une propriété d'état pour attribuer une valeur à une autre propriété d'état, je peux le faire dans le hook onMounted(). Comme ça :

    <script setup>
    import { computed, reactive } from 'vue'
    
    const input = reactive({
        fourDigits: Array(1, 2, 3, 4),
        firstDigit: computed(() => {
            return 0; // just some default value
        })
    });
    
    onMounted(() => {
        input.firstDigit = input.fourDigits[0];
    })
    </script>
    
    <template>
       <div>
         <pre>
           {{ JSON.stringify(input.firstDigit, null, 2) }}
         </pre>
       </div>
    </template>
    

    Vérifiez si cela fonctionne pour vous. je souhaite tout le meilleur!

    répondre
    0
  • P粉611456309

    P粉6114563092023-11-01 14:49:14

    this est autre chose dans l'API de composition, essayez d'utiliser :

    firstDigit: computed(() => {
      return input.fourDigits[0] 
    })

    répondre
    0
  • Annulerrépondre