3

我正在开发我的第一个 Nova 领域。它是一个索引字段,包含一个发送 Axios 请求的按钮,当返回响应时,我需要重新加载索引视图。

现在我得到了这个:

this.$router.go(this.$router.currentRoute);

问题是它刷新了整个页面(硬刷新,比如按下 Cmd+R 时)。我只想重新加载当前路由(这是资源的索引路由)。

我也试过这个:

            this.$router.push({
                name: 'index',
                params: {
                    resourceName: this.resourceName,
                },
            });

但由于我推了同样的路线,它什么也没做。

有任何想法吗?

谢谢,丹尼尔。

4

1 回答 1

1

你可以试试这样的

let currentFilters = _.cloneDeep(this.$store.state[`${this.resourceName}`]['filters']);
await this.$store.commit(`${this.resourceName}/storeFilters`, {});
await this.$store.commit(`${this.resourceName}/storeFilters`, currentFilters);

此代码会将当前应用的过滤器重置为空对象,然后再次请求旧过滤器,这会导致资源索引更新。但要小心 - 此方法向服务器发出两个请求。

我现在在尝试实现自定义弹出组件时面临同样的问题——但这就是我在 Nova vuex 商店中实现的全部。

实现的想法取自https://github.com/tanmuhittin/nova-reload-resources/blob/f27da9507a97696b7aca0e9bd7e5afd3001f0891/resources/js/components/Card.vue#L21

于 2019-08-12T12:16:41.163 回答