vue.js - 无法从服务器获取数据到 NuxtJS 存储
问题描述
这是我的代码:
export const state = () => ({
products: []
});
export const getters = {
getProducts: state => {
return state.products;
}
};
export const mutations = {
SET_IP: (state, payload) => {
state.products = payload;
}
};
export const actions = () => ({
async getIP({ commit }) {
const ip = await this.$axios.$get("http://localhost:8080/products");
commit("SET_IP", ip);
}
});
服务器运行良好,但我无法将数据放入商店
解决方案
首先,我强烈建议您将您的动作和突变重命名为类似getProducts
andSET_PRODUCTS
而不是ip
. 还要确保在操作中更改变量名称。虽然这不会改变任何功能,但它使您的代码更易于阅读。
其次,也许console.log(ip)
在你在动作中定义之后添加一个权利const
,看看你是否在那里得到了你想要的数据。在大多数情况下,您将要分配ip.data
给您的变量。
最后,确保您在代码中的某处调用该操作。你应该这样做:
this.$store.dispatch('getIP'); // Using your current name
this.$store.dispatch('getProducts'); // Using my recommended name
推荐阅读
- discord.js - 命令权限
- java - firebase ValueEventListener/onDataChange 只是将最后一个子节点从数据库中检索到 firebase recyclerview 并忽略其余的
- xml - 如何从销售 id 中过滤记录(创建 uid),仅针对基于销售的特定商家
- php - Laravel ORM 多对多关系就像一对多
- kubernetes - GitLab集成响应401中的helm安装
- java - 如何使用 Selenium 和 Java 从 Bootstrap Glyphicon 日期选择器中选择日期
- javascript - webworkers 中的 tensorflow.js
- c# - 是否有可能 Nlog 不写相同的消息
- angular - Angular:ng build --prod 上的“对象”类型上不存在属性“数据”
- html5-fullscreen - 在页面加载时进入全屏,无需人工干预