You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Redux开发编译报错'dispatch'未定义的问题如何解决?

错误原因

你已经从react-redux导入了useDispatch钩子,但没有在组件内调用该钩子生成可用的dispatch实例,直接使用未声明的dispatch变量触发了编译报错。

解决方案

在App组件内部顶部调用useDispatch(),拿到dispatch方法即可,修改后的完整代码如下:

import React from "react";
import {useSelector,useDispatch} from 'react-redux';
import {increment} from './actions'

function App() {
  const dispatch = useDispatch(); // 新增此行代码
  const counter = useSelector(state => state.counter);
  const isLogged = useSelector(state => state.isLogged);

  return (
    <div>
      <h1>Counter {counter}</h1>
      <button onClick={()=> dispatch(increment())}>+</button>
      <button>-</button>
      {isLogged ? <h3>Value info can't be display</h3>: '' }
      
    </div>
  );
}

export default App;

补充说明:useDispatch是钩子函数,必须执行后才能返回可以触发Redux action的dispatch方法,不能直接把导入的useDispatch当作dispatch方法使用。

内容的提问来源于stack exchange,提问作者surrealduck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 10:18:02