มีวิธีเรียกการกระทำอื่นจากการกระทำหนึ่งในการรีดักซ์ปฏิกิริยาหรือไม่

ฉันมีสองการกระทำในการดำเนินการ Redux ของฉัน... ตอนนี้ฉันมีแบบฟอร์มเข้าสู่ระบบที่ส่งคำขอโพสต์ .. ตอนนี้ฉันต้องการเรียกใช้การดำเนินการอื่นจากภายในการดำเนินการเข้าสู่ระบบ ตอนนี้ฉันเชื่อมต่อฟังก์ชันเข้าสู่ระบบแล้ว แต่ไม่ใช่ฟังก์ชัน setLoading

e.g

export const loginUser = ()=>dispatch=>{
 setLoading();
}

export const setLoading = ()=>({
type: SET_LOADING
})

person Zain ul Abideen    schedule 02.04.2020    source แหล่งที่มา
comment
redux-thunk คือสิ่งที่คุณกำลังมองหา   -  person Sergiu Paraschiv    schedule 02.04.2020
comment
คุณสามารถส่งการดำเนินการหลังจากที่คุณแก้ไขในมิลเดิลแวร์ที่ใช้ในโปรเจ็กต์ของคุณ การกระทำเป็นวัตถุธรรมดา รหัสที่คุณระบุคือผู้สร้างการกระทำ   -  person Incepter    schedule 02.04.2020


คำตอบ (1)


คุณสามารถใช้ตรรกะของคำตอบนี้เพื่อช่วยคุณได้ คำตอบนี้ให้ตัวอย่างไว้ (นั่นคือตัวอย่างการรับผลิตภัณฑ์)

ตอบสนอง Redux ดึงข้อมูลจากแนวทางแบ็กเอนด์

สำหรับปัญหาของคุณ คุณควรใส่ใจกับส่วนนี้ของลิงก์ที่ฉันให้ไว้ด้านบน เนื่องจากคุณสามารถใช้ตรรกะนั้นสำหรับโปรแกรมของคุณได้

สังเกตสิ่งนี้ในลิงก์ด้านบน

// redux/product/product.actions.js
import { ShopActionTypes } from "./product.types";
import axios from "axios";

export const fetchProductsStart = () => ({
  type: ShopActionTypes.FETCH_PRODUCTS_START
});

export const fetchProductsSuccess = products => ({
  type: ShopActionTypes.FETCH_PRODUCTS_SUCCESS,
  payload: products
});

export const fetchProductsFailure = error => ({
  type: ShopActionTypes.FETCH_PRODUCTS_FAILURE,
  payload: error
});

export const fetchProductsStartAsync = () => {
  return dispatch => {
    dispatch(fetchProductsStart());
    axios
      .get(url)
      .then(response => dispatch(fetchProductsSuccess(response.data.data)))
      .catch(error => dispatch(fetchProductsFailure(error)));
  };
};
person Mohammad Oftadeh    schedule 02.04.2020
comment
แต่ปัญหาของผมไม่เป็นเช่นนั้น... ฉันมีฟังก์ชันอื่นที่รับการจัดส่งและเรียกการจัดส่งนั้น... - person Zain ul Abideen; 04.04.2020