У меня есть два компонента vue
: GetAnimal.vue
и DisplayAnimal.vue
. GetAnimal.vue
отправьте JSON с данными животных на DisplayAnimal.vue
, используя маршрутизатор pu sh. DisplayAnimal.vue
отображает эти данные. Это работает так: я go до /getanimal
, нажимаю кнопку, которая запускает функцию getAnimal()
, которая приводит меня к /viewanimal
(через маршрутизатор pu sh):
GetAnimal. vue:
<script>
import axios from 'axios';
export default {
data: function () {
return {
name: 'defaultAnimal',
defaultanimal: {
name: 'Cat',
furColor: 'red',
population: '10000',
isExtinct: false,
isDomesticated: true
},
animal: String
}
},
methods: {
getAnimal: function () {
console.log("this.defaultanimal: " +
JSON.stringify(this.defaultanimal));
this.$router.push({
name: "viewanimal",
params: {
animal: this.defaultanimal
}
});
},
...
DisplayAnimal. vue:
<template>
<div>
<h1>Displaying animal:</h1>
<p>Animal name: {{animal.name}}}</p>
<p>Fur color: {{animal.furColor}}</p>
<p>Population: {{animal.population}}</p>
<p>Is extinct: {{animal.isExtinct}}</p>
<p>Is domesticated: {{animal.isDomesticated}}</p>
</div>
</template>
<script>
import axios from "axios";
export default {
props: {
animal: {
name: {
type: String
},
furColor: {
type: String
},
population: String,
isExtinct: String,
isDomesticated: String
}
},
name: "DisplayAnimal",
methods: {
},
created() {
console.log("animal param: " +
JSON.stringify(this.$route.params.animal));
this.animal = this.$route.params.animal;
}
};
</script>
Животное отображается нормально:
Однако я получаю предупреждение в консоли:
The this.animal = this.$route.params.animal;
строка, которая явно назначает реквизиты, вероятно, является причиной предупреждения.
Однако, если я удалю эту строку, животное не будет отображаться вообще:
У меня есть этот
маршрутизатор. js:
{
path: "/viewanimal",
name: "viewanimal",
component: () => import('./views/DisplayAnimal.vue'),
props: {animal: true}
},
{
path: "/getanimal",
name: "getanimal",
component: () => import('./views/GetAnimal.vue')
}
Я думал, что настройка props: {animal: true}
обеспечит автоматическое назначение, но похоже, что это не так. Как исправить?