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

Symfony UX React报错:找不到./react/controllers文件求助

Symfony UX React 配置报错问题

问题描述

我正尝试按照官方文档配置@symfony/ux-react,已执行以下步骤:

  • 执行composer require symfony/ux-react
  • 执行yarn add -D @babel/preset-react --force
  • 执行yarn encore dev --watch
    同时已在config/packages目录添加react.yaml文件。

但在引入以下代码时出现报错:

import { registerReactControllerComponents } from '@symfony/ux-react';
registerReactControllerComponents(require.context('./react/controllers', true, /\.(j|t)sx?$/));

报错信息:

"./assets/js/app.ts"包含对文件"./react/controllers"的引用,该文件未找到,请检查拼写或文件是否已移动。

尝试使用相对路径也未能解决问题,请问我遗漏了什么?

解决方案

你遗漏了创建对应目录和基础控制器文件的步骤,官方文档的这段代码默认假设你已经在assets/js/目录下创建了react/controllers文件夹,且里面至少有一个React控制器文件(比如ExampleController.jsx或ExampleController.tsx)。

按以下步骤修复:

  1. 在assets/js/目录下创建react/controllers目录结构,确保路径和代码里的./react/controllers完全匹配(Linux/macOS环境下注意路径大小写敏感)
  2. 在该目录下创建一个测试用的React控制器文件,比如HelloController.jsx,示例内容:
import { Controller } from '@hotwired/stimulus';
import React from 'react';
import ReactDOM from 'react-dom/client';

export default class extends Controller {
    connect() {
        const root = ReactDOM.createRoot(this.element);
        root.render(<h1>Hello React!</h1>);
    }
}
  1. 重新运行yarn encore dev --watch,此时路径引用可找到对应目录和文件,报错会消失。

额外确认项:

  • 确保app.ts文件确实在assets/js/目录下,这样./react/controllers的相对路径才正确
  • 若使用TypeScript,需确认tsconfig.json已配置支持JSX语法(比如设置"jsx": "react-jsx")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:37:38