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

ReactJS中Route组件无法渲染函数返回组件的问题求助

问题解答

这两种写法本质不一样,核心原因是React Router的Route组件的element属性要求传入的是React元素,而不是组件函数本身:

  • 第一种写法element={HomePage}:这里的HomePage是一个函数组件(本质是JavaScript函数),并不是React元素。React Router无法直接渲染一个函数,它需要的是这个函数执行后返回的JSX元素,所以这种写法会失效。
  • 第二种写法element={<Home/>}:<Home/>是通过JSX语法创建的React元素(编译后等价于React.createElement(Home)),这符合element属性的要求,所以能正常渲染。

如果想保留HomePage这个封装,正确的写法应该是把它作为组件渲染,也就是:

<Route path="/home" element={<HomePage />} />

这样React会执行HomePage函数,拿到它返回的<Home />元素,再交给React Router渲染。

简单来说:组件是“模具”,React元素是用模具做出来的“成品”,element属性只接受成品,不接受模具。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:30:59