vuex+Promise+Axios,为什么打印resolve是undefined?页面没有数据出来,组件调用那边应该怎么写?

import Vue from 'vue'
import Vuex from 'vuex'
import Axios from 'axios';
Vue.use(Vuex);

const store = new Vuex.Store({
  state:{
    topic_list:[],//话题列表
    searchData:[],//分页话题列表 
  },
  mutations:{ 
    // 搜索框方法
    searchMethod(state, search){
      state.searchData = state.topic_list.filter(item => {
        return new RegExp(search).test(item.title)//获取标题参数title 
      })
    }, 
     // 数据列表展示方法
    searchTitle(state, obj){   
      state.topic_list = obj; 
      state.searchData = state.topic_list;
    },   
  },
  actions: {
    // 首页话题列表接口
    getSearchTitle(context,{page,tab}){
      return new Promise((resolve, reject) => {
        var api = "/api/v1/topics?tab="+tab+"&page="+page+"&sort=0,0";
        Axios.get(api).then(response => {          
          resolve(response.data.data); 
          console.log('$$$$$$$$$$$$',this.resolve)
          sessionStorage.setItem("pageCount",resolve.pages);
          context.commit('searchTitle',resolve);               
        })
        .catch(e => {
          reject(e);
        });
      })   
    },

图片描述

组件部分
图片描述

阅读 3.5k
2 个回答

...你这写的是个啥。
axios请求本身返回的就是promise对象,一般不用自己实例化Promise啊。


 // 首页话题列表接口
    getSearchTitle(context,{page,tab}){
        var api = "/api/v1/topics?tab="+tab+"&page="+page+"&sort=0,0";
        Axios.get(api).then(response => {        
          // axios没有处理的话 数据都在response.data上   
          console.log('>>>>>', response, response.data)
          sessionStorage.setItem("pageCount", response.data);
          context.commit('searchTitle', response.data);               
        }) .catch(e => {
           //错误处理
        });
     }  
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题