suchen
Fragen und Antworten Vue 3-Kompositions-API – berechnete Eigenschaft gibt undefiniert zurück

0

So geben Sie Eigenschaften mit der Vue 3-Kompositions-API zurück 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>


Your Answer
einreichen

2 antwortet
0

如果我需要使用状态属性为另一个状态属性赋值,我可以在 onMounted() 挂钩中执行此操作。像这样:

<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>

检查它是否适合您。祝一切顺利!

2023-11-01 14:49:47

einreichen

0

this 是组合 API 中的其他内容,请尝试使用:

firstDigit: computed(() => {
  return input.fourDigits[0] 
})
2023-11-01 14:49:14

einreichen

Hot Tools

Sammlung der Laufzeitbibliothek vc9-vc14 (32+64 Bit) (Link unten)

Sammlung der Laufzeitbibliothek vc9-vc14 (32+64 Bit) (Link unten)

Laden Sie die Sammlung der Laufzeitbibliotheken herunter, die für die Installation von phpStudy erforderlich sind

VC9 32-Bit

VC9 32-Bit

VC9 32-Bit-Laufzeitbibliothek für die integrierte Installationsumgebung von phpstudy

Vollversion der PHP-Programmierer-Toolbox

Vollversion der PHP-Programmierer-Toolbox

Programmer Toolbox v1.0 PHP Integrierte Umgebung

VC11 32-Bit

VC11 32-Bit

VC11 32-Bit-Laufzeitbibliothek für die integrierte Installationsumgebung von phpstudy

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen