Redux dispatch时VERIFY Action未触发、Reducer未执行是什么原因?
你观察到的两个前缀为@@redux/的Action是Redux初始化阶段自动触发的内置动作,属于正常的初始化行为,和你的业务逻辑无关。VERIFY动作未触发的原因及修复方案如下:
核心原因
VERIFY Action 从未被调用。你通过connect高阶组件将VERIFY绑定到了Home组件的props属性上,但你在Home组件的逻辑中没有任何调用props.VERIFY()的代码,Redux自然不会派发对应类型的Action。
其他可排查点(调用后仍不生效时检查)
- 确认你已正确配置
redux-thunk中间件:你的VERIFY是返回函数的Thunk类型异步Action Creator,没有Thunk中间件的话这类Action无法正常执行。 - 确认
signedReducer已正确注册到根Reducer中,且Action Type的拼写没有错误。
修复代码示例
修改pages/home.js,在组件挂载时触发VERIFY动作即可:
import { useEffect } from "react"; import PrivateLayout from "../components/PrivateLayout/PrivateLayout"; import { connect } from "react-redux"; import { VERIFY } from "../redux/actions/signActions"; function Home(props) { // 组件挂载时调用VERIFY useEffect(() => { props.VERIFY() }, [props]) return ( <div > { true ? <h1>Logged In</h1> : <h1>Please login again</h1> } </div> ) } const mapStateToProps = state => ({ user: state }) const mapDispatchToProps = { VERIFY: VERIFY } export default connect(mapStateToProps, mapDispatchToProps)(Home);
内容的提问来源于stack exchange,提问作者Ruthvik Chandra Vanam
相关产品推荐
相关产品推荐

