Я пытался использовать собственные события с маршрутизатором Vue, используя это. $ Router.push, и я продолжаю выдавать следующую ошибку:
[Vue warn]: Invalid handler for event "click": got undefined
found in
---> <section>
Кажется, я не могу понять, почему, и мне приходится использовать несколько решений, каждое из которых вызывает вышеуказанную ошибку. Некоторые из них перенаправляют на страницу непосредственно перед тем, как вызвать событие.
Вещи, которые я пробовал:
1
//in JSX
<section nativeOnClick={this.navigationPage('login')}></section>
// in methods I have the following:
methods: {
navigationPage: function (page) {
this.$router.push(page)
}
}
2
//in JSX
<section nativeOnClick={this.$router.push('login')}></section>
Одно из следующих решений:
//in JSX
<section nativeOnClick={this.navigateToLogin}></section>
// in methods I have the following:
methods: {
navigateToLogin: function () {
this.$router.push(page)
}
}
Не могли бы вы сообщить мне, что я делаю неправильно в 1 и 2. Решение, которое работает хорошо, но требует от меня создания метода для каждой навигации. Мне лично нравится 2 !!
Любая помощь приветствуется
NEW
Ниже приведено полное определение компонента:
//navbar.js
import styles from './index.styl'
import logo from 'Src/assets/logo.svg'
import menu from 'Src/assets/menu.svg'
export default {
name: 'NavBar',
methods: {
navigationPage: function (page) {
this.$router.push(page)
}
},
render (h) {
return (
<ui-nav class={styles.nav}>
<ui-section class={styles.navLogo} nativeOnClick={ this.navigationPage('hello') }>
<ui-image source={logo} />
</ui-section>
<ui-spacer />
<ui-section class={styles.navMenu}>
<ui-image source={menu} />
</ui-section>
</ui-nav>
)
}
}
Примечание. Этот стиль также автоматически переключается на /hello
(т. Е. До события щелчка). Я не знаю почему.