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

如何创建路径仅ID不同的多个React Route路由

问题解决:动态生成Route路由失败

你的代码无法正常工作的核心原因是**forEach没有返回值**——它仅遍历数组执行回调逻辑,不会生成可供React渲染的元素数组。要动态创建Route路由,需要改用map方法,它会返回包含JSX元素的数组,React可直接渲染该数组。

修改后的代码如下:

{Object.keys(this.state.machines).map((key) => (
  <Route
    key={key}
    exact
    path={`/machine${key}`}
    render={() => (
      <MachineComposition machine={this.state.machines[key]} />
    )}
  />
))}

额外注意几个细节:

  • 必须给每个Route添加key属性,值使用唯一的key,这是React列表渲染的强制要求,可避免渲染警告
  • 把component换成render属性:如果用component={() => ...}的写法,每次父组件渲染都会创建新的组件实例,可能引发不必要的组件重挂载,render属性在性能和稳定性上更优
  • 使用模板字符串/machine${key}替代字符串拼接,语法更简洁易读

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:41:03