首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重用redux-工具箱中的状态

如何重用redux-工具箱中的状态
EN

Stack Overflow用户
提问于 2022-08-18 18:09:06
回答 1查看 55关注 0票数 0

我正在开发Redux工具包来构建一个应用程序,它可以使用API获取数据。在我的Redux存储中,我有多个切片,我想访问searchSlice在bookingSlice.Is中的搜索状态,有解决这个问题的方法吗?我还没能找到解决办法。

我在寻找最佳实践

代码语言:javascript
复制
import { createSlice } from "@reduxjs/toolkit";

const initialState = {
  destination: "",
  checkIn: new Date(),
  checkOut: new Date(),
  count: {
    adults: 2,
    children: 0,
    rooms: 1,
  },
  price: {
    min: 0,
    max: 500000,
  },
};

const searchSlice = createSlice({
  name: "search",
  initialState,
  reducers: {
    setDateRange: (state, { payload }) => {
      const { startDate, endDate } = payload;
      state.checkIn = startDate;
      state.checkOut = endDate;
    },
    increment: (state, { payload }) => {
      state.count[payload] += 1;
}
}

export default searchSlice.reducer;

订舱片

代码语言:javascript
复制
import { createSlice, createAsyncThunk } from "@reduxjs/toolkit";
import axios from "axios";

const initialState = {
  search: ?
  bookings: [],
  isLoading: false,
  isSuccess: false,
  isError: false,
  message: "",
};

export const createBooking = createAsyncThunk(
  "booking/create",
  async (state, { rejectWithValue }) => {
    try {
      const { data } = await axios.post("api/bookings", { state });
      return data;
    } catch (error) {
      if (error.response && error.response.data.message) {
        return rejectWithValue(error.response.data.message);
      } else {
        return rejectWithValue(error.message);
      }
    }
  }
);

const bookingSlice = createSlice({
  name: "booking",
  initialState,
  reducers: {},
}
EN

回答 1

Stack Overflow用户

发布于 2022-08-18 18:25:49

您不能访问减速机内另一个减速器的状态。但是,您可以在getState()操作中使用createBooking获取应用程序的当前状态树。然后从searchSlice中筛选您需要的信息,并将其与api响应一起从操作中返回。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73407639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档