У меня есть панель навигации и текстовое поле, в котором пользователь может искать сообщения по тегам. Если пользователь вводит 1-3 тега, записанные теги будут сохранены в массиве тегов.
Моя ссылка маршрутизатора в компоненте navbar выглядит следующим образом: (только соответствующая часть)
<router-link :to="{name:'posts', props:{searchTags: tags}}">
<button type="button" v-if="this.tags.length > 0"
class="...">Search
</button>
</router-link>
в моем route.js - это маршрут моих сообщений (важный фрагмент моих маршрутов. Js)
routes: [
{
path: "/posts",
component: posts,
name: 'posts'
},
]
Навбар должен отправить массив тегов компоненту posts. К сожалению, я не могу этого сделать.
Компонент posts отправляет запрос на публикацию в API, который получает последние сообщения. Но я хочу, чтобы при передаче тегов выбирались не самые новые сообщения, а только сообщения с определенными тегами. Но сначала я должен как-то получить теги.
Я пытался получить их с помощью "this. $ Props.searchTags" и других вещей. К сожалению, результат всегда "неопределен".
export default {
name: "posts",
props: {
searchTags: Array,
required: false
},
data: function () {
return {
apiUrl: '/getPosts',
....
tags: [this.searchTags],
}
},
methods: {
getPosts: function (url) {
this.$http.get(url).then(function (data) {
// blabla
});
},
getPostsByTags: function() {
//
},
},
created() {
if(this.$props.searchTags == null)
this.getPosts(this.apiUrl);
else
this.getPostsByTags(bla);
},
}