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

React useNavigate生产环境报错,本地Vite运行正常(pnpm monorepo)

生产环境中React Router useNavigate抛出未知错误(本地运行正常)

问题描述

基于pnpm monorepo搭建的项目,顶层通过BrowserRouter全局包裹所有组件。其中Calculatorinator组件内调用const navigate = useNavigate();,本地使用Vite启动完全正常,但部署到Vercel、Netlify等生产环境时,useNavigate会抛出错误,日志仅显示"Error"(尝试打印错误对象的name和message属性,无额外信息)。已通过代码检查和Chrome React DevTools确认,Calculatorinator组件确实处于Router的上下文范围内。

简化项目结构

main.tsx

root.render(
    <StrictMode>
        <Router>
            <RootProvider>
                <App/>
            </RootProvider>
        </Router>
    </StrictMode>
);

App.tsx

<div className="App">
  <Routes>
    <Route
          path="calculatorinator"
          element={
            <div className="calculatorinatorContainer">
              <Calculatorinator/>
            </div>
          }
    />
  </Routes>
</div>

Calculatorinator.tsx

const Calculatorinator = (props: CalculatorinatorProps) => {
  const navigate = useNavigate();

  // 组件其他逻辑
};

已尝试的排查/解决方法

  • 尝试在Calculatorinator组件的入口文件中额外添加Router包裹(未解决问题)
  • 按照Stack Overflow建议,在main.tsx中用StrictMode包裹Router(无效)
  • 项目已配置_redirects文件,内容为/* /index.html 200,解决了路由刷新问题,但未修复useNavigate报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:42:35