MVC5 上的 ReactJS.Net 无法解决依赖关系

2024-03-29

我正在尝试设置一个 ASP.Net MV5 应用程序来使用ReactJS.Net http://reactjs.net,包括服务器端渲染和捆绑。

不幸的是,它因以下异常而失败:

React.dll 中发生“React.TinyIoC.TinyIoCResolutionException”类型的异常,但未在用户代码中处理

附加信息:无法解析类型:React.ReactEnvironment

此异常发生在这一行:

 @Scripts.Render("~/bundles/ui-components")

这条线是我的_layouts.cshtml file.

我应该如何解决我的问题?


为了提供详细信息,我做了什么:

  1. 在 BundleConfig.cs 中:

        bundles.Add(new ScriptBundle("~/bundles/reactjs").Include(
                    "~/Scripts/react/react-{version}.js"));
        bundles.Add(new JsxBundle("~/bundles/ui-components")
                    .Include("~/content/ui/components/*.jsx"));
    

    我创建了一个文件夹“Content/ui/components”,其中包含所有 jsx 文件(实际上只有一个取自教程的“commentsbox.jsx”文件)。

  2. 在 ReactConfig.cs 中,我删除了WebActivatorEx.PreApplicationStartMethod属性,因为我已经不再支持 MVC5,以利于 Owin 组件。剧照包含:

    public static class ReactConfig
    {
        public static void Configure()
        {
            ReactSiteConfiguration.Configuration
                .AddScript("~/content/ui/*.jsx");
        }
    }
    
  3. In my Global.asax.cs文件,我明确地调用ReactConfig.Configure方法来替换WebActivatorEx.PreApplicationStartMethod hook:

    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            ReactConfig.Configure();
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
    
  4. My _layouts.cshtml视图包含(在文件底部):

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @Scripts.Render("~/bundles/reactjs")
    @Scripts.Render("~/bundles/ui-components")
    @RenderSection("scripts", required: false)
    @Html.ReactInitJavaScript()
    
  5. 我的一种观点是:

    @{
        ViewBag.Title = "Home Page";
    }
    
    <div id="content"></div>      
    
    @section scripts
    {
        @Html.React("CommentBox", new {}, containerId:"content")        
    }
    
  6. 最后是我的 jsx 文件:

    var CommentBox = React.createClass({
      render: function() {
        return (
            <div class="row">
                <div class="col-md-4">
                hello
                </div>
    
            </div>
        );
      }
    });
    

我终于找到了问题的根源。

事实上,该错误消息具有误导性。在ReactConfig.Configure方法,通配符不起作用(即*.jsx不起作用)。

我用这个替换了方法:

public static void Configure()
{
    ReactSiteConfiguration.Configuration
        .AddScript("~/content/ui/commentsbox.jsx").
        .AddScript("~/content/ui/comment.jsx");
}

它解决了这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC5 上的 ReactJS.Net 无法解决依赖关系 的相关文章

  • useLocation 挂钩 - 确定过去的位置

    根据 React Router 5 1文档 https v5 reactrouter com web api location应该可以看到 应用程序现在在哪里 你想让它去哪里 甚至它曾经在哪里 在我的应用程序中 我需要查看 它在哪里 我访问
  • 仅显示某些路由的组件 - React

    我正在 React 中开发一个带有登录界面的网站 该网站显示一个自定义导航组件 但是我不希望它显示在主路线 即登录页面 上 但据我了解 静态组件不会在路线更改时重新呈现 这准确吗 我正在使用 React Router 来处理所有路由 这是我
  • iOS 11 浏览器图像错误

    在 iOS 11 中滚动页面时出现以下错误 在 Firefox Safari 和 Chrome 中 在 Android 设备中 不会发生该错误 这些是背景图像 我不知道这是否是导致错误的原因 图 2 显示了图像在 Android 中的用途和
  • ant-d upload中如何为removeFile添加PopConfirm一个图片文件

    我正在使用 Ant d Upload 通过本地系统上传文件 然后单击文件预览图像上的删除图标 图像文件将被删除 我想添加一个弹出确认 所以我尝试在 onRemovefunction 中添加确认作为承诺但它不起作用 它在浏览器中显示警报 on
  • 重命名 ASP.NET MVC 项目时出错

    我复制了以前的项目并将其重命名 一旦我成功重命名了所有名称空间并且它构建正确 当我运行该应用程序时 出现以下错误 The following errors occurred while attempting to load the app
  • 将 Sweet Alert 弹出窗口添加到 React 组件中的按钮

    我为 Bootstrap 和 React 找到了这个完美的 Sweet Alert 模块 我在 Meteor 应用程序中使用它 http djorg83 github io react bootstrap sweetalert http d
  • 在vscode中使用reactjs报错

    在 Visual Studio 代码中使用 jsx 语法 Visual Studio代码报错 请帮我 谢谢 符号 例如 而不是这样做 return lt button className square gt TODO lt button g
  • React Native 反应导航 SafeArea 问题

    我更新了我的android项目 react navigation was 3 x 搬去5 x 决定实施必要的更改 但它不想工作 从反应导航页面复制了示例 但仍然显示相同的错误 有人知道问题出在哪里吗 当我用谷歌搜索一半的互联网时找不到解决方
  • 将 JavaScript 数组转换为具有属性的数组

    我有一个像这样的数组从服务器返回响应 111 1010 111 1010 1010 我想将其转换为 JavaScript JSON 如下所示 branch 111 branch 1010 branch 111 branch 1010 bra
  • ASP.NET MVC 5 属性路由:Url.Action 返回 null

    我在重构我们的支付处理操作方法 由我们的第 3 方在线支付提供商调用 时遇到问题 我们有一个产品控制器 Authorize and RoutePrefix products 类级别的属性和操作方法 包括以下内容 Product string
  • 为什么react中的组件需要大写? [复制]

    这个问题在这里已经有答案了 因此 当您声明一个组件以小写首字母进行反应时 它不会显示 也不会引发错误 当您将组件名称大写时 它确实有效 这样的实现是怎样的呢 为了避免与现有的 html 元素发生冲突 还是这是一个错误 var test Re
  • Google 跟踪代码管理器导致 SPA 中的整个页面重新加载 - React

    当我在 React 的 GTM 中添加触发器时 a a or 元素 它会导致单击时重新加载整个页面 而不是仅重新渲染应用程序的一部分 当我删除谷歌跟踪时 一切都会顺利进行 有没有办法 如何配置 GTM 不影响应用程序的行为 如果 Googl
  • React hooks 状态变量在重新渲染后未更新

    在下面的示例中 我有一个想要更新的元素 水果 数组 并使用更新后的数组执行其他操作 在本例中保存更新后的列表 我的理解是重新渲染状态将更新 但它不在这里 或者状态更新和我的操作之间存在延迟 In the addFruit功能我可以看到 Pe
  • 如何在 React JS 中根据键创建动态表?

    我正在尝试在 React JS 中创建一个动态表组件 该组件当前只有一个静态标头 其中包括最常见的结果键 有些结果还包含更多信息 例如电话号码 学位 如何根据键 值的存在动态地使用附加列扩展表 我应该与state并在存在时使其可见 或者我应
  • 无法处理未捕获的类型错误:无法读取 createRouterReducer 处未定义的属性“位置”

    我在将路由器连接到 rootReducer 时遇到问题 控制台日志 未捕获的类型错误 无法读取未定义的属性 位置 在 createRouterReducer reducer js 005c 9 不知道如何修复它并将路由器连接到减速器 app
  • 如何从 MVC 视图将文件上传到 Azure Blob 存储

    我正在编写一个 MVC5 互联网应用程序 并且需要一些帮助来将文件从我自己的文件系统上传到 Azure Blob 这是我的Azure上传代码功能 public void UploadFileToBlobStorage string cont
  • 使用 Castle Windsor IoC 容器注册组件期间设置 Name 属性

    在我的应用程序中 我有一个名为 Message 的类 Message 类中存在一个名为 MessageType 类型为字符串的属性 MessageType 属性用于提醒应用程序 Message 类的实例中将存在什么数据模式 Message
  • 为什么我需要使用 setState 回调来设置依赖于第一个项目的 setState 完成的第二个状态项目的状态?

    在此 componentDidUpdate 方法中 执行 setState 将引号设置为从 fetch 返回的内容后 我必须使用回调再次执行 setState 将 randomQuoteIndex 设置为调用 randomQuoteInde
  • React中ComponentDidMount生命周期方法被调用两次

    在我的 React 应用程序中 加载应用程序时会进行两次初始 API 调用 我查看了 Chrome gt inpsect 中的网络选项卡 启动器 调用堆栈显示第一个调用是从VM123000 bundle js而第二个调用只是从实际的bund
  • 新部署后,React 应用程序必须清除浏览器缓存

    我们正在使用 Jenkins 管道在 apache 服务器上部署 React 应用程序 当我们部署新代码时 大多数新功能都可以正常工作 但并非所有更改都反映浏览器中的最新内容 用户必须打开隐身窗口或清除缓存才能看到新功能 我见过一些相关的解

随机推荐