如何使用 React.NET 的 React 插件

How to use react addons with React.NET

我正在尝试在使用服务器端渲染和 React.NET 的项目中使用 React 插件组件 ReactCSSTransitionGroup。

每当我在视图中调用@Html.React() 以启动服务器端渲染时,我都会收到以下异常。

Error while rendering "WorkOrderGeneralTab" to "react1": Script threw an exception: 'ReactCSSTransitionGroup' is undefined. Line: 0 Column:0

如何让 react.net 服务器端渲染器识别 CSSTransitionGroup 等 React 插件的定义?

这是我在其他地方所做的可能相关的事情

这是我的 ReactConfig.cs

ReactSiteConfiguration.Configuration
            .AddScript("~/Scripts/react-with-addons.js")
            .AddScript("~/Features/WorkOrder/_Notes.jsx")
            .AddScript("~/Features/WorkOrder/_General.jsx");

这是抛出异常的服务器端代码(在 .cshtml 文件中)

@Html.React("WorkOrderGeneralTab", new
{
    workOrder = Model,
    tabName = "General",
    softCloseUrl = @Url.Action("SoftClose"),
    reopenUrl = @Url.Action("Reopen"),
    userPermissions = new { 
        softClose = @Html.UserHas(Permission.WorkOrderSoftClose),
        reopen = @Html.UserHas(Permission.WorkOrderReopen)
    }
})

最后,这是抛出异常的组件。该组件由 WorkOrderGeneralTab 的渲染函数实例化和渲染。

var WOGeneralActionButtons = React.createClass({displayName: 'WOGeneralActionButtons',
  render: function() {
    var closeOrReopenBtn;
    // logic that chooses close vs reopen button... 

    var CopyDeleteButtons = <WOCopyDeleteButtons/>;
    var ExportPrintButtons = <WOExportPrintButtons/>;
    return (
          <div className="col-md-6 text-right">
            <ReactCSSTransitionGroup transitionName="example">
              {closeOrReopenBtn}
            </ReactCSSTransitionGroup>
            {CopyDeleteButtons}
            {ExportPrintButtons}
          </div>
    );
  }
});

我还定义了一些 css 来支持 transitionName="example"。

我缺少什么让服务器端渲染器将 ReactCSSTransitionGroup 识别为有效组件?如果我删除 ReactCSSTransitionGroup 标签,其他一切都按原样工作(保持过渡动画)。

提前致谢!

由于您尚未发布所有代码,因此这可能不正确。但是 ReactCSSTransitionGroup 不是全局变量,它位于 React.addons 对象上。所以你需要这个:

var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;

在使用代码之前的某处。