**我尝试改革一个多步骤表单,但是现在我的第一步和第二步同时可视化了。即使我的应用数据存储了一个activePhase数据。看起来我应该使用一些emit逻辑作为方法?或者我在使用Provide/Inject时,我应该使用Reactivity,就像这里一样-https://vuejs.org/guide/components/provide-inject.html#working-with-reactivity?
请查看链接-https://codesandbox.io/s/intelligent-jasper-teh1im?file=/src/components/Step2.vue* *
<template v-if="activePhase == 2">
<div class="container">
<div class="content-wrapper">
<h1>Step 1</h1>
<div class="form-group">
<label>Payment Amount</label
><input
name="paymentAmount"
v-model="paymentAmount"
placeholder="Your payment amount"
class="form-control"
/>
</div>
<div class="form-group">
<label>Account Number</label
><input
name="accountNumber"
v-model="accountNumber"
placeholder="Your account number"
class="form-control"
/>
</div>
<button type="button" @click.prevent="goToStep(3)" class="btn">
Continue
</button>
</div>
<Button />
</div>
</template>
<script>
import Button from "./Button.vue";
export default {
components: {
Button,
},
inject: ["activePhase", "paymentAmount", "accountNumber"],
methods: {
goToStep(step) {
this.activePhase = step;
},
},
};
</script>
<style>
</style>
1条答案
按热度按时间41zrol4v1#
我建议在这个用例中使用动态组件。
以便您的表单接受1个孩子,这将随时间变化。