2017-12-02 3 views
0

Ich benutze Typoskript mit this lib. Und ich habe folgenden Code in der Datei HomePage.vue:@model Dekorateur von Vue-Property-Decorator erzeugt Vue-warn: Vermeiden Sie die Mutation

<template> 
    <div>Write something x: <input v-model="someName" type="text"></div> 
</template> 

<script lang="ts"> 
import { Component, Model, Vue } from "vue-property-decorator"; 

@Component 
export default class HomePage extends Vue { 
    @Model() someName: string; 
} 
</script> 

Nach dem Übersetzen in Browser laufen und geben Sie etwas auf dem Eingabefeld i in Chromkonsole folgende vue warrning erhalten:

[Vue warnen]: Vermeiden Sie ein Mutieren direkt propagieren, da der Wert immer dann überschrieben wird, wenn die übergeordnete Komponente erneut gerendert wird. Verwenden Sie stattdessen eine Daten oder eine berechnete Eigenschaft basierend auf dem Wert des Props. Prop wird mutiert: "someName"

Haben Sie eine Idee, wie Sie dieses Problem beheben können?

Antwort

1

Für das V-Modell sollten Sie die in data definierten Eigenschaften verwenden.

Ich sehe, dass Sie eine Kurz @Model verwenden, aber was Sie brauchen, ist @Providedata Eigenschaften zu definieren.

@Provide() foo = 'foo'

Siehe https://github.com/kaorun343/vue-property-decorator

+0

Danke :) - bevor ich nicht „Compilation Ausgang“ lesen, aber ist das Verhalten dort angegeben (aber „@Model“ Name ist ein wenig verlust meiner Meinung nach führt) –

Verwandte Themen