亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在函數中添加通過id搜索產品?

如何在函數中添加通過id搜索產品?

GCT1015 2023-10-20 16:41:12
我有代碼類別Action.jsimport {FETCH_CATEGORIES_START, FETCH_CATEGORIES_SUCCESS, FETCH_CATEGORIES_ERROR} from "./actions-types/categories-actions"import axios from "axios"export function fetchCategories() {  return async dispatch => {    dispatch(fetchCategoriesStart())    try {      const response = await axios.get('/api/category/categories')      const categories = []      categories.push(response.data.data)      dispatch(fetchCategoriesSuccess(categories))    } catch (e) {      dispatch(fetchCategoriesError(e))    }  }}export function fetchCategoriesStart() {  return{    type: FETCH_CATEGORIES_START  }}export function fetchCategoriesSuccess(categories) {  return{    type: FETCH_CATEGORIES_SUCCESS,    categories  }}export function fetchCategoriesError(error) {  return{    type: FETCH_CATEGORIES_ERROR ,    error  }}及減速機代碼import {FETCH_CATEGORIES_START, FETCH_CATEGORIES_SUCCESS, FETCH_CATEGORIES_ERROR} from "../actions/actions-types/categories-actions"const initialState = {  categories: [],  loading: false,  error: null}export default function categoriesReducer(state = initialState, action){  switch (action.type) {    case FETCH_CATEGORIES_START:      return {        ...state, loading: true      }    case FETCH_CATEGORIES_SUCCESS:      return {        ...state, loading: false, categories: action.categories[0]      }    case FETCH_CATEGORIES_ERROR:      return {        ...state, loading: false, error: action.error      }    default:      return state  }}但是當我獲得類別時,我需要按類別 ID 產品進行額外搜索并放入對象類別(例如帶有產品數組的關鍵產品),即發出另一個異步請求。但我無法在異步函數中進行異步。const response = await axios.get('/api/category/categories')const categories = []categories.push(response.data.data)也許我提出的問題不對,但我需要下一個邏輯。為類別制作 axios.get獲取類別當數組產品放入對象類別中時,通過類別 ID 和響應創建新的 axios.get 謝謝
查看完整描述

1 回答

?
largeQ

TA貢獻2039條經驗 獲得超8個贊

如果我是對的,您想在獲取類別后、將類別分派到商店之前直接獲取產品并將它們添加到數組中嗎?如果是這樣,您可以直接映射類別:


const categoriesWithProducts = await Promise.all(

   categories.map(

      async category => {

         const products = await 'INSERT AXIOS REQUEST HERE';

         return {

            ...category,

            products

         }

      }

   )

)

然后將categoriesWithProducts傳遞到dispatch函數中。


查看完整回答
反對 回復 2023-10-20
  • 1 回答
  • 0 關注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號