繁体   English   中英

未捕获的类型错误:useSelector 不是 function

[英]Uncaught TypeError: useSelector is not a function

尝试运行我的 React 应用程序时,我在浏览器控制台中收到以下错误:Uncaught TypeError: useSelector is not a function。代码在 VS Code 上编译正常。

这是导致问题的 App.js 代码:

const BrowserRouter = require('react-router-dom');
const Navigate = require('react-router-dom');
const Routes = require ('react-router-dom');
const Route = require ('react-router-dom');
const HomePage = require ('scenes/homePage');
const LoginPage = require ('scenes/loginPage');
const ProfilePage = require ('scenes/ProfilePage');
const useMemo = require ('react');
const useSelector = require ('react-redux');
const CssBaseline = require ('@mui/material');
const ThemeProvider = require ('@mui/material');
const createTheme = require ('@mui/material/styles');
const themeSettings = require ('./theme');


function App() {
  const mode = useSelector((state) => state.mode);
  const theme = useMemo(() => createTheme(themeSettings(mode)), [mode]);
  const isAuth = Boolean(useSelector((state) => state.token));

  return (
    <div className="app">
      <BrowserRouter>
        <ThemeProvider theme={theme}>
          <CssBaseline />
          <Routes>
            <Route path="/" element={<LoginPage />} />
            <Route
              path="/home"
              element={isAuth ? <HomePage /> : <Navigate to="/" />}
            />
            <Route
              path="/profile/:userId"
              element={isAuth ? <ProfilePage /> : <Navigate to="/" />}
            />
          </Routes>
        </ThemeProvider>
      </BrowserRouter>
    </div>
  );
}

export default App;

任何帮助,将不胜感激。 谢谢

我首先查看了以前的线程并尝试了以下操作:

  • 我仔细检查并正确导入 useSelector,使用:const useSelector = require ('react-redux');
  • 我还检查了我的 react-redux 是最新版本。
  • 我还检查了 react-redux 文档以确保语法正确并且它似乎不是语法错误

useSelector不是react-redux的默认导出,它是命名导出。

const { useSelector } = require('react-redux');

或者您可能需要使用:

const ReactRedux = require('react-redux');
...
ReactRedux.useSelector((state) => state.token);

或者只使用常规导入

import { useSelector } from 'react-redux';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM