Я создал хук для перезагрузки моих данных из базы данных одним нажатием кнопки:
<template>
<base-projects :projects = "projects" />
</template>
<script>
import { mapGetters } from 'vuex';
import Projects from './Projects';
import projectService from '@/services/projectService';
export default {
components: { Projects },
computed: {
...mapGetters([
'projects'
])
},
created() {
projectService.getAllCompanyProjects();
},
};
</script>
Так что это работает нормально, но только если я нажимаю в первый раз. Если я нажму второй раз, он не перезагрузит данные во второй раз. Кто-нибудь знает, как решить эту проблему?
Заранее спасибо!
@charlycou можно ли уничтожить хук в созданном хуке?
Почему вы хотите уничтожить его. Если вам нужно уничтожить этот хук, это, вероятно, потому, что он вам не нужен, поскольку он запускается один раз при создании вашего компонента. Отредактируйте свой пост с помощью некоторого кода или предоставьте песочницу, чтобы воспроизвести вашу проблему.
@charlycou я обновил код
благодаря. Я разместил ответ. Скажи мне, если это поможет.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я предполагаю, что ваши данные перезагружаются из вашей базы данных с помощью функции projectService.getAllCompanyProjects();. Поскольку вы хотите перезагрузить данные по «щелчку», я предлагаю вам привязать событие «щелчок» к одному из методов вашего компонента.
<template>
<base-projects :projects = "projects" @click.native = "reloadData" />
</template>
<script>
import { mapGetters } from 'vuex';
import Projects from './Projects';
import projectService from '@/services/projectService';
export default {
components: { Projects },
computed: {
...mapGetters([
'projects'
])
},
methods: {
reloadData() {
projectService.getAllCompanyProjects();
}
}
};
</script>
Метод reloadData будет запущен «щелчком» по DOM вашего компонента base-projects.
компонент base-projects не является кнопкой, поэтому метод не вызывается
Я обновил код, используя .native. Если это не работает для вашего варианта использования, вам нужно обновить свой пост с помощью компонента, из которого должно быть запущено ваше событие.
createdхук вызывается один раз при создании компонента. Если вы хотите перезагрузить свои данные по клику, вы должны вызвать компонентmethodпо клику. Не могли бы вы предоставить код компонента, чтобы решить эту проблему?