首页 > 解决方案 > axios 获取参数

问题描述

我正在尝试使用参数实现从 API 获取数据。我有两个功能,我看不到错误。有任何想法吗?

getFilteredProducts() {
    return apiClient.get('/product/', {
      params: {
        search: String(name)
      }
    })
  }
async fetchFilteredProducts({ commit }, name) {
      await productService.getFilteredProducts({name})
      .then(response => {
        commit('SET_FILTERED_PRODUCTS', response.data.items)
      })
      .catch(error => {
        console.log('Error has occured' + error)
      })
    }

我收到了下面代码的工作解决方案,所以问题可能与第二个参数有关。

async fetchFilteredProducts({ commit }, name) {
      await axios.get("MY_API_URL/product/", {
        params: {
          search: String(name)
        }
      })
      .then(response => {
        commit('SET_FILTERED_PRODUCTS', response.data.items)
      })

标签: javascriptpromiseaxios

解决方案


目前尚不清楚您要完成什么,但我认为您的功能应该是这样的:

使用异步/等待:

// Your Service
async getFilteredProducts(name) {
  return await apiClient.get('/product/', {
    params: {
      search: String(name)
    }
  })
}

// Using Your Service
async someParentFunction() {
    const response = await getFilteredProducts("John")
    console.log(response.data);
}

使用承诺:

// Your Service
getFilteredProducts(name) {
  return apiClient.get('/product/', {
    params: {
      search: String(name)
    }
  })
}

// Using Your Service
getFilteredProducts("John").then((response) => {
    console.log(response.data);
})

请注意name我传递给getFilteredProducts方法的参数。以前这不存在,因此String(name)会导致空字符串""


推荐阅读