Проблема с просмотром изменений свойств Vue.js

В чем проблема

Я хотел назначить переменную локального компонента для prop. Я постоянно получаю предупреждение Vue Неверный обработчик часов, указанный ключом undefined. Возможно, дело в том, что опора передается из другого компонента, где я использую v-модель, но я точно не знаю. Я был бы очень признателен за вашу помощь, потому что мой небольшой проект упражнений действительно зависит от этой механики.

Родительский компонент

Здесь у меня есть выбор HTML, здесь я моделирую свое состояние.

<template>
  <div>
    <div>
      <h1>Some header</h1>
    </div>
    <form class="choosePhysicsModule">
      <label for="selectedPhysicsModule"></label>
      <select class="select_Module" id="selectedPhysicsModule" v-model="state.selectedPhysicsModule">
        <option :value="option.value" v-for="(option, index) in importedListToSelect" :key="index">
          {{option.name}}
        </option>
      </select>
    </form>
    <list_of_exercises  v-if="state.selectedPhysicsModule" :what_exercises="state.selectedPhysicsModule"/>
  </div>
</template>

<script>

export default {
  name: 'ChoosePhysicsModule',
  components: {list_of_exercises},
  setup() {
    const state = reactive({
      selectedPhysicsModule: null,
    })
    return {
      state,
      importedListToSelect
    }
  }
}

Дочерний компонент

</script>

export default {
    name: "list_of_exercises",
      props: {
        whatExercises: {
          type: String,
          required: true
        }
      },
      data() {
       return {
         exercises: this.what_exercises,
       }
      },
      watch: {
        whatExercises: function () {
          this.exercises = this.whatExercises
        }
       }

person Porfinogeneta    schedule 08.12.2020    source источник
comment
У вас круговая зависимость в часах. Пожалуйста, прикрепите и свой родительский компонент, чтобы мы могли лучше вам помочь.   -  person Ballon Ura    schedule 08.12.2020
comment
возможно, попробуйте добавить default: '' в опору @BallonUra, OP не мутирует exercises   -  person Lawrence Cherone    schedule 08.12.2020
comment
Я внес некоторые изменения, может быть, в этом более широком контексте вы сможете мне помочь?   -  person Porfinogeneta    schedule 09.12.2020
comment
У вас есть идеи, что мне делать с этим предупреждением? Пожалуйста помогите   -  person Porfinogeneta    schedule 12.12.2020


Ответы (1)


В родительском компоненте, в который вы передаете опору, вам нужно добавить сеттер для переданной опоры. Вот пример:

<template>
  <div id="app">
      <label>
          <input name="whatExercises" v-model="whatExercises">
      </label>

      <ListOfExercises v-if="whatExercises" :what_exercises="whatExercises" />
  </div>
</template>

<script>
export default {
    data() {
      return {
          whatExercises: null,
      }
    }
}
</script>

P.S: в качестве примечания, я рекомендую использовать camelCase для имен свойств. Это больше соответствует остальному сообществу. Если у вас есть время, не стесняйтесь ознакомиться с руководством по стилю на официальный сайт.

person hatef    schedule 08.12.2020
comment
Хм, я все еще получаю это предупреждение, я внес некоторые изменения в свой пост, возможно, это даст нам более широкий контекст ситуации. И, конечно же, спасибо за то, что поделились этой информацией о стандартах сообщества. - person Porfinogeneta; 08.12.2020
comment
И что я должен делать? - person Porfinogeneta; 12.12.2020
comment
Извините, я не смог ответить раньше. Проблема уже решена? - person hatef; 13.12.2020
comment
Да, это. Я просто изменил часы на вычисляемые и немного изменил свой код. Может быть, вы мне не помогли напрямую, но благодаря вам я понял, в чем дело. Спасибо. - person Porfinogeneta; 13.12.2020