#vue.js #vue-router
Вопрос:
Когда я изначально пытался передать объект, представляющий собой массив других объектов (полученных из сообщения axios), на другой маршрут, подобный этому:
this.$router.push({
name: "EMR",
params: {
records: response,
},
});
Я получил массив, подобный следующему:
[Object Object],
[Object Object],
...
[Object Object]
Я мог бы исправить это с помощью:
this.$router.push({
name: "EMR",
params: {
records: JSON.stringify(response),
},
});
А затем используйте следующее в маршруте назначения:
created () {
this.clinical_records = JSON.parse(this.$route.params.records)
}
Это правильный способ сделать это? Или мне чего-то не хватает?
Ответ №1:
Вы можете передать данные в качестве реквизита через vue-маршрутизатор: https://router.vuejs.org/guide/essentials/passing-props.html#object-mode
Редактировать
Пример:
В конфигурации маршрута вы активируете параметры передачи в качестве реквизитов:
routes: [
{
name: "EMR",
path: "your/path/to/emr"
props: {
default: true,
},
},
// other routes...
]
В целевом компоненте вы объявляете свою опору:
props: {
clinical_records: Array,
}
Тогда вы сможете использовать напрямую:
this.$router.push({
name: "EMR",
params: {
clinical_records: response,
},
});
Комментарии:
1. К сожалению, это не сработало. У меня все еще был похожий массив, когда я добавил эти реквизиты