我正在 .Net MVC 应用程序中的 View 中使用一些 ReactJS 组件。

目前,我有一个包含所有组件的文件,位于:/scripts/react-app/MyApp.jsx

我想将其拆分为多个文件,但是当我将组件移动到另一个文件中时,我收到运行时异常:

Uncaught ReferenceError: SomeComponent is not defined 

如何告诉 MyApp.jsx 引用另一个 .jsx 文件?

编辑:

我已尝试按照建议进行捆绑,但仍然遇到相同的错误。这是我所做的:

将以下内容添加到BundleConfig.cs:

 bundles.Add(new JsxBundle("~/bundles/main").Include( 
         "~/React/FileOne.jsx", 
         "~/React/FileTwo.jsx", 
         "~/React/FileThree.jsx")); 

在我的 _Layout.cshtml 中,我添加了:@Scripts.Render("~/bundles/main")

我尝试在 FileOne.jsx 中使用 FileThree.jsx 中定义的组件,但仍然收到 组件未定义 错误.

第二次编辑:

我更改为在 View 中使用 Html 助手,它开始为我工作:

@{ 
    ViewBag.Title = "Testing"; 
} 
 
<div id="someContent"> 
    @Html.React("FileOneComponent", new 
        { 
            prop1 = "a", 
            prop2 = "b", 
        }) 
</div> 
 
<script src="https://unpkg.com/react@0.13.3/dist/react.js"></script> 
@Scripts.Render("~/bundles/main") 
@Html.ReactInitJavaScript() 

请您参考如下方法:

要要求组件,首先将其导出(在其自己的文件中),例如:

export default MyComponent; 

在您想要使用它的文件中,您需要它,如下所示:

import MyComponent from './mycomponent'; 

请务必正确指定路径,在我的示例中,它假定相同的文件夹。

如果您遇到任何捆绑问题,我衷心推荐 create-react-app

这将为您设置一个工作开发环境,包括测试。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!