首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PROBE_UNKOWN_ACTION作为动作类型

PROBE_UNKOWN_ACTION作为动作类型
EN

Stack Overflow用户
提问于 2020-11-28 03:49:22
回答 1查看 43关注 0票数 0

我不太清楚是什么原因造成的,我有一个非常简单的反应应用程序,只有一个还原器(目前),当我试图发出一个行动,但它似乎不起作用?我想我创造减速机的方法有问题,但我不太确定。任何帮助都将不胜感激!

UPDATE看来我的调度和一切正常,但是每次我切换页面时,状态都会重新初始化为未定义的状态,而不是关闭当前的就地状态。

store.js

代码语言:javascript
复制
import { applyMiddleware, compose, createStore } from "redux";
import thunkMiddleware from "redux-thunk";
import { combineReducers } from "redux";
import monitorReducersEnhancer from "./enhancers/monitorReducers";
import loggerMiddleware from "./middleware/logger";

import homeReducer, {
  initialSate as homeInitialState,
} from "./home/homeReducer";

const initialState = {
  home: homeInitialState,
};

export const configureStore = () => {
  const middlewares = [loggerMiddleware, thunkMiddleware];
  const middlewareEnhancer = applyMiddleware(...middlewares);

  const enhancers = [middlewareEnhancer, monitorReducersEnhancer];
  const composedEnhancers = compose(...enhancers);

  const rootReducer = combineReducers({
    home: homeReducer,
  });

  const store = createStore(rootReducer, initialState, composedEnhancers);

  return store;
};

homeReducer.js

代码语言:javascript
复制
import { HOME_GET_RECIPE_ID } from "./homeActions";

export const initialSate = {
  id: 0,
};

export default function homeReducer(state = initialSate, action) {
  switch (action.type) {
    case HOME_GET_RECIPE_ID: {
      return {
        ...state,
        id: action.id,
      };
    }
    default:
      //if there is no recognized action type
      return {
        ...state,
        id: -1,
      };
  }
}

homeActions.js

代码语言:javascript
复制
export const HOME_GET_RECIPE_ID = "HOME_GET_RECIPE_ID"

export const updateSelectedRecipe = (id) => ({
    type: HOME_GET_RECIPE_ID, 
    id
})

homeRedirect.js

代码语言:javascript
复制
import React from "react";
import { useDispatch } from "react-redux";

import Link from "@material-ui/core/Link";

import { updateSelectedRecipe } from "../lib/home/homeActions";

export default function HomeRedirect (props) {
  const dispatch = useDispatch();

  const handleChange = () => {
    dispatch(updateSelectedRecipe(props.id)); // will update the id
  };

  return (
    <Link href={props.href} onClick={handleChange}>
      {props.children}
    </Link>
  );
};
EN

回答 1

Stack Overflow用户

发布于 2020-11-28 22:39:53

在此操作时,发现浏览器正在刷新并因此重置状态,这是由于使用了material中的标记。为了防止整个窗口刷新,在重定向时,我使用了function router之前的{ Link }函数,这允许在不重置状态的情况下进行重定向,因为它实际上并没有刷新浏览器。

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

https://stackoverflow.com/questions/65046217

复制
相关文章

相似问题

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