Asp.net mvc 如何在ReactJS.NET中使用React钩子?

Asp.net mvc 如何在ReactJS.NET中使用React钩子?,asp.net-mvc,react-hooks,es6-modules,server-side-rendering,reactjs.net,Asp.net Mvc,React Hooks,Es6 Modules,Server Side Rendering,Reactjs.net,我们目前正在将前端从jQuery迁移到Reactjs.NET。我们正在使用React 16.8,它允许我们使用React挂钩而不是类 我们成功地设置了我们的项目,并首先使用类和服务器端渲染进行了尝试,效果很好,但我的团队使用了React钩子。我尝试使用Webpack+Babel来传输.jsx文件,因为它不再使用razor helper@Html.React(),但我的组件仍然会出现相同的错误 我们使用的是Asp.NET4.x和NETFramework4.7 这是我的视图children.csht

我们目前正在将前端从jQuery迁移到Reactjs.NET。我们正在使用React 16.8,它允许我们使用React挂钩而不是类

我们成功地设置了我们的项目,并首先使用类和服务器端渲染进行了尝试,效果很好,但我的团队使用了React钩子。我尝试使用Webpack+Babel来传输.jsx文件,因为它不再使用razor helper
@Html.React()
,但我的组件仍然会出现相同的错误

我们使用的是Asp.NET4.x和NETFramework4.7

这是我的视图children.cshtml

@Html.React("ChildrenForm", new {
   familyTiesId = Model.FamilyTiesId 
   },
   serverOnly:true
)
这是我的ReactConfig.cs:

namespace Nop.Web
{
    public static class ReactConfig
    {
        public static void Configure()
        {
            // If you want to use server-side rendering of React components, 
            // add all the necessary JavaScript files here. This includes 
            // your components as well as all of their dependencies.
            // See http://reactjs.net/ for more information. Example:
            ReactSiteConfiguration.Configuration
                .AddScript("~/Scripts/Components/Customer/ChildrenForm.jsx");

            JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName;
            JsEngineSwitcher.Current.EngineFactories.AddV8();
        }
    }
}
我的组成部分:

import React, { useState, useEffect } from 'react';

const ChildrenForm = (props) => {

    const [ familyTiesId, setFamilyTiesId ] = useState(props.familyTiesId);

...
}
它应该会起作用,但我得到的是:

SyntaxError: Unexpected identifier

Line 20:         @Html.React("ChildrenForm", new {
Line 21:             ddtl = Model.DDTL,
Line 22:             listFamilies = Model.ListFamilies,
...
[JsCompilationException: SyntaxError: Unexpected identifier
   at ChildrenForm.jsx:6:8 -> import React, { useState, useEffect } from 'react';]
   JavaScriptEngineSwitcher.V8.V8JsEngine.InnerExecute(String code, String documentName) +258
   React.ReactEnvironment.EnsureUserScriptsLoaded() +548
使用razor helper@Html.React和服务器端渲染时,似乎无法导入文件


如何在服务器端渲染时导入并使用React钩子?

不必导入,只需使用:

const[familyTiesId,setFamilyTiesId]=React.useState(props.familyTiesId)

直接调用
useState
,而不是导入