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

使用BrowserRouter路由React组件时遭遇未终止JSX内容解析错误

解决React Router中"Unterminated JSX contents"解析错误

嘿,这个错误其实很好定位——问题出在你写的EditExpensePage组件里,JSX标签没有正确闭合!

看你这段代码:

const EditExpensePage =() =>{
 return(
 <div> This is from EditExpensePage <div>
 );
}

最后一行的<div>应该是闭合标签</div>,JSX对标签闭合的要求很严格,不管是嵌套标签还是单标签,必须保证每个开启的标签都有对应的闭合标签,否则解析器就会抛出"未终止JSX内容"的错误。

修正后的完整代码

import React from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter, Route} from 'react-router-dom';

const HelpPage = () => {
  return (
    <div> This is from HelpPage </div>
  );
}

// 修复了闭合标签的问题
const EditExpensePage = () => {
  return (
    <div> This is from EditExpensePage </div>
  );
}

const routes = (
  <BrowserRouter>
    <div>
      <Route path='/' component={HelpPage} exact={true}/>
      <Route path='/edit' component={EditExpensePage} />
    </div>
  </BrowserRouter>
);

ReactDOM.render(routes, document.getElementById('root'));

关于改成无状态组件的写法

如果你想把路由部分封装成无状态组件,只要保证组件内的JSX标签都正确闭合就没问题,示例如下:

const AppRouter = () => (
  <BrowserRouter>
    <div>
      <Route path='/' component={HelpPage} exact={true}/>
      <Route path='/edit' component={EditExpensePage} />
    </div>
  </BrowserRouter>
);

ReactDOM.render(<AppRouter />, document.getElementById('root'));

小提示

以后再遇到"Unterminated JSX contents"这类错误,第一时间检查所有JSX标签的闭合情况——不管是普通的嵌套标签,还是<input />、<Route />这类自闭合标签,确保语法正确就可以解决大部分此类问题啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:20:19