当前位置: 首页 > 知识库问答 >
问题:

为什么vue子组件会自动更改父组件中的数据?

乐刚毅
2023-03-14

我正在尝试这样的事情:

组件

     <template v-else>
        <b-card class="d-flex card-shadow">
          <b-list-group-item
            class="d-flex justify-content-between border-0 pl-0"
            v-for="(userExperience, index) in userExperiences"
            :key="index"
          >
              <template>
                <p class="mb-0 fs--1 font-weight-600">
                  {{ userExperience.designation }}
                </p>
              </template>
              <template v-slot:action-buttons>
                <div class="d-flex mt-1">
                  <b-button
                    variant="link"
                    class="p-0 my-0 ml-0 no-underline fs--1 mr-3 text-blue font-weight-600"
                    v-b-modal.edit-experience-modal
                    @click="selectedExperience = userExperience"
                    >Edit or add details</b-button
                  >
                </div>
              </template>
            </summary-container>
          </b-list-group-item>
        </b-card>
        <edit-user-experience :experience="selectedExperience" />
      </template>

<script>
export default {
  data(){
    userExperiences: [],  // some data 
 }
}
</script>

编辑用户体验。vue

<b-modal
      id="edit-experience-modal"
      title="Edit Experience"
      cancelTitle="Discard"
      okTitle="Save"
      button-size="sm"
      hide-header-close
      return-focus="false"
      @ok="handleEditExperience"
      @hide="resetFormData"
    >
      <create-or-edit-experience-form
        v-model="userExperience"
        :experience="experience"
        :handle-submit="handleEditExperience"
        :loading="loading"
      />
</b-modal>

当我尝试更改1中的数据时,它会自动更改2中的数据。

有什么意义?

共有2个答案

益何平
2023-03-14

v-model将输入字段绑定到您请求的数据。通过要求创建或编辑体验绑定到用户体验,您告诉它主动更改存储在该对象中的值。

您可以在子组件中使用不同的对象来存储临时数据,然后在handleedExperience中,您可以在userExperience中更改数据。

它目前的工作方式是v-Model的预期行为

郭均
2023-03-14

正如我所料,你有不止一个问题。

慢慢来,把你的沙箱和我下面链接的沙箱进行比较。此外,如果要求不太多,请保持当前状态(如果您想做进一步的更改,请使用fork)。将您所做的与我所做的进行比较,可能会对将来遇到类似问题的用户有所帮助。

我尽可能多地去除浮肿。要完全理解它,请阅读自定义事件(特别是.sync修改器)。还要通过计算机设置程序。

重要提示:内部EditUserExperience。vue,您会注意到我正在将experience扩展到一个名为userExperience的计算程序中。我这样做是为了打破反应性。如果我通过体验直接进入

在这里:https://codesandbox.io/s/two-way-binding-forked-9ewdc

 类似资料:
  • 我对JS的反应有点陌生。我有两个问题。我来了 现在我要做的是,当应用程序组件挂载时,我生成一个对后端服务器的ajax调用,当它返回时,它更新道具,并设置状态,这样子组件也会重新呈现,但子组件不会重新呈现。谁能告诉我出了什么问题。 问题2 现在让我们假设我将进入组件二路由,它将呈现组件二,我在应用程序组件中生成一个ajax调用,根据ajax调用返回的数据,我在应用程序组件中设置了一些道具,我还希望组

  • 我有两个组件:父组件,我想改变子组件的状态: 和子组件: 我需要从父组件更改子组件的打开状态,或者当单击父组件中的按钮时,从父组件调用子组件的toggleMenu()?

  • 所以我对vue的父子组件通信有问题。问题是,当我导航到一个组件后,它应该调用ajax从服务器获取数据。收到数据后,父组件应该通过道具将其发送给所有子组件,但道具数据不显示。子组件只有在我更改编辑器上的代码后才开始显示props数据。这是我父组件的代码 这是我的单一产品规格组件,不会加载道具数据: 正如我所说,我的单一产品规范组件的唯一问题不是它不会加载道具数据。问题是,当我在文本编辑器中更改代码时

  • 本文向大家介绍vue自定义事件中父组件怎么接收子组件的多个参数?相关面试题,主要包含被问及vue自定义事件中父组件怎么接收子组件的多个参数?时的应答技巧和注意事项,需要的朋友参考一下 https://www.cnblogs.com/lalalagq/p/9901139.html

  • 这个问题在这里已经得到了回答,但事情总是在变化。 基本上,父组件获取一些数据,子组件需要这些数据。 这是子组件。

  • 问题内容: 我有两个组件: 父组件 ,我想从中更改子组件的状态: 和 子组件 : 我需要从父组件更改子组件的 打开 状态,还是单击父组件中的按钮时从父组件调用子组件的 toggleMenu() ? 问题答案: 状态应在父组件中进行管理。您可以通过添加属性将值传输到子组件。