EditTransaction コンポーネントがあり、次のように呼び出します:
リーリーご覧のとおり、トランザクション オブジェクトを送信しています。これはエディタなので、トランザクション オブジェクトをリアクティブにしたくありません。誰かがエディターを閉じた場合、変更されたトランザクション オブジェクトではなく、元のトランザクション オブジェクトが必要です。したがって、私が正しく、プロキシを削除したい場合は、それをエディターに置きます。 リーリー
エディター テンプレート内には、v-model 値がフォーム オブジェクトにバインドされているいくつかのアセット コンポーネントがあります。リーリー
問題は、トランザクション名を変更すると、フォーム オブジェクトが変更され、トランザクション プロパティも変更されることです。したがって、トランザクション プロパティはリアクティブであるため、親データ内の名前も変更されます。 何が間違っているのでしょうか、またはデリゲートなしでプロパティ値を使用してコンポーネントの作成時に値が設定されるフォームオブジェクトを実装するにはどうすればよいですか?
小道具を使用して 初期値 を子コンポーネントの状態に渡すのが一般的です。これは、ローカルの
data
内の prop の値を「コピー」したことを意味します。これにより、prop 値が予期しない変更から確実に保護されます: Vue ドキュメントで詳細を読むこれは、上記のアプローチを示す非常に簡単な例です:
/あなたの子コンポーネントvue/
リーリーさて、あなたの例を読むと、フォーム内の一部のデータを更新しようとしていることがわかりますが、ボタンか何かで確認されない限り、初期情報を変更したくないようです。この問題を解決するプロセスは次のとおりです:
this.$emit
) に送信して、親が変更を理解できるようにします。そこで私は 2 つの解決策を見つけました:
リーリー ###または### リーリーどちらも機能します。フォームの値を変更しても、プロパティは変更されません。