Я пытаюсь показать результат запроса фильма.
Когда я отправляю свою форму, меня правильно перенаправляют на страницу с результатом. Проблема в том, что если я ввожу название нового фильма и отправляю снова, я больше не буду перенаправлен (поэтому не вижу новый результат). Я должен обновить браузер, чтобы увидеть результат.
Мой дом vue.
<template>
<form class="form-inline my-2 my-lg-0" v-on:submit.prevent="submit()">
<input
class="form-control mr-sm-2"
type="search"
v-model="query"
autofocus
placeholder="Enter a movie title"
aria-label="Search"
/>
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">
Search
</button>
</form>
</template>
<script>
export default {
data() {
return {
query: ""
};
},
methods: {
submit() {
console.log('clicked')
this.$router.push({ name: "search-movies", query: { q: this.query } });
}
}
};
</script>
My Search vue (страница результатов)
<template>
<div>
<h1>Search</h1>
<div class="row">
<MovieListItem v-for="movie in movies" :key="movie.id" :movie="movie" />
</div>
</div>
</template>
<script>
import MOTService from "@/services/MOTService.js";
import MovieListItem from "@/components/MovieListItem.vue";
export default {
components: {
MovieListItem
},
data() {
return {
movies: [],
meta: {},
};
},
methods: {
searchMovies() {
MOTService.searchMovies(this.$route.query)
.then(response => {
this.movies = response.data["data"];
this.meta = response.data["meta"];
})
.catch(error => {
console.log("There was an error:", error.response);
});
}
},
created() {
this.searchMovies();
}
};
</script>
Мой router.js
...
{
path: "/search",
name: "search-movies",
component: Search,
}