Невозможно передать реквизиты дочернему компоненту в Vue js

#json #vue.js #vue-props

#json #vue.js #vue-props

Вопрос:

Я потратил почти 2 часа на выяснение, но я не понимаю, что я делаю не так. Я просто получаю данные в своем родительском компоненте, а затем передаю их своему дочернему компоненту, и в моем дочернем компоненте я использую реквизиты для получения этого компонента, но я ничего не получаю. К вашему сведению, я получаю все свои данные в родительском компоненте, если я выполняю консоль.войдите, этого просто нет в моем дочернем компоненте.

Это мой родительский компонент:

     <template>
  <div class="container">
    <div class="row">
      <div class="col-sm-12">
        <div class="about2">
          <h1>What I do</h1>
          <StudyCard :studies="data.studycards" />
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import StudyCard from "@/components/StudyCard.vue";
import data from "../assets/data.json";
export default {
  components: {
    StudyCard,
  },
  data() {
    return {
      data,
    };
  },
};
console.log(data.studycards);
</script>
  

Это сценарий моего дочернего компонента: (это единственное, что вам нужно, поскольку это создает проблему)

 <script>
export default {
  props: ["studies"],
};
console.log(studies); //This line is an error 
</script>
  

Спасибо за решение проблемы.

Комментарии:

1. реквизит vue не будет установлен studies в области, в которой ваша консоль регистрирует его

Ответ №1:

Проблема в том, что вы получаете доступ к реквизитам за пределами метода или перехватов жизненного цикла.

 <script>
export default {
  props: ["studies"],
  mounted() {
    console.log(this.studies); 
  }
};
</script>
  

Комментарии:

1. Большое вам спасибо, это работает. Таким образом, реквизиты всегда должны обрабатываться изнутри. Урок усвоен. Спасибо, ребята, за помощь.

2. Если это поможет, пожалуйста, примите ответ и проголосуйте за.