У меня есть целевая страница, внутри я использую v-for
для итерации 3 option
div, каждый div получает свои соответствующие реквизиты от посадочного компонента, одна пропуска, которую я передаю, является name
опорой, когда вы нажимаете на выбранный div, он генерирует событие с этим свойство, а также перенаправляет на компонент main
, который заполняется в зависимости от имени.
//option div
export default {
props:['name'],
data(){
return {
}
}
},
methods: {
selectName() {
let name = this.name
this.$eventHub.$emit("select-name", name);
}
В компоненте main
я слушаю событие при монтировании и использую эту информацию в заголовке компонента:
mounted: function() {
this.$eventHub.$on("select-name", name => {
this.$store.dispatch("information/getInfoByName", name);
this.title = name
} })
Я хочу добавить проверку, если пользователь переходит непосредственно к https://example.com/main
, не выбирая сначала option
div, я хочу, чтобы он вернулся на целевую страницу:
data() {
name: null
},
computed:{
nameValidation(){
if(this.name == null) {
swal({
text: "Please select a name first",
icon: "warning",
buttons: false,
timer: 1500
});
setTimeout(function () {
document.location.href = '/landing'
}, 1500);
}
Он работает ... когда у меня открыт Vue devtools, но когда я его закрываю, он не работает. Он каким-то образом выполняет вычисленное свойство. Я пробовал использовать его как метод и вызывать его в заголовке моей страницы <h1>{{nameValidation}}<h1>
, но он всегда проверяет this.name
как null
, даже если вы выбираете вариант, я предполагаю, что это связано с отправкой, которую я выполняю при монтировании main
, у меня вопрос: почему вычисление работает только с инструментами разработчика?
name
на главную страницу? - person Andrew Vasilchuk   schedule 24.08.2019...mapGetters({ getClusterInfo: "getClusterInfo/getClusterInfo" }),
- person ahzep   schedule 24.08.2019