首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我试图从其他切片redux工具箱中获得一个值时,引用错误?

当我试图从其他切片redux工具箱中获得一个值时,引用错误?
EN

Stack Overflow用户
提问于 2022-06-25 09:52:53
回答 1查看 164关注 0票数 0

我试图从另一个有用户信息的切片中导入一个值,知道我为什么会犯这个错误吗?我读到从其他切片请求数据是正常的,错误似乎是切片找不到存储。下面是我的代码结构,我的商店在我的应用程序顶部,这个getState函数只在一个组件中工作,而不是在片到另一个片中工作。

代码语言:javascript
运行
复制
import React from 'react';
import ReactDOM from 'react-dom';
import { HashRouter } from 'react-router-dom';
import App from './App';
import './index.css';
// Redux Tool Kit
import { store } from './app/store';
import { Provider } from 'react-redux';

ReactDOM.render(
  <React.StrictMode>
    <Provider store={store}>
      <App />
    </Provider>
  </React.StrictMode>,
  document.getElementById('root')
);

代码语言:javascript
运行
复制
import {
  RootState,
  store
} from './store';
import {
  createSlice,
  PayloadAction
} from '@reduxjs/toolkit';


export interface miscState {
  dayNumber: true,
  dayOfWeek: false,
};

export const miscSlice = createSlice({
  name: 'misc',
  initialState,
  reducers: {

    setDisplayDay: (state, action: PayloadAction < {
      bool: boolean;type: string
    } > ) => {
      const {
        user,
        uid
      } = store.getState().global.currentUser;
      const setDisplay = async() => {
        const docRef = doc(db, colDynamic(user)[0], uid);
        await updateDoc(docRef, {
          [action.payload.type]: action.payload.bool,
        });
      };
    },
  },
});

// Values
export const MiscCurrentState = (state: RootState) => state.misc;
// Action creators are generated for each case reducer function
export const {
  setDisplayDay
} = miscSlice.actions;

export default miscSlice.reducer;

代码语言:javascript
运行
复制
import { configureStore } from '@reduxjs/toolkit';
// Global
import globalReducer from './globalSlice';
// Misc
import miscReducer from './miscSlice';

export const store = configureStore({
  reducer: {
    global: globalReducer,
    misc: miscReducer,
  },
});

// Infer the `RootState` and `AppDispatch` types from the store itself
export type RootState = ReturnType<typeof store.getState>;
// Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState}
export type AppDispatch = typeof store.dispatch;

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-25 17:29:41

在Redux中,不允许从还原器中访问存储。还原器必须是一个纯函数,它只读取传递给它的变量-所以您拥有的所有信息都是片自己的state和被分派的action。您不允许读取全局变量、产生任何副作用或从全局Redux存储区读取以获取另一个片的数据。

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

https://stackoverflow.com/questions/72752869

复制
相关文章

相似问题

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