Reactjs 不能在寓言中引用

Reactjs 不能在寓言中引用,reactjs,f#,fable,Reactjs,F#,Fable,我正试图用F#with Fable编写一个React组件,但在引用必要的库时遇到了问题。我得到的编译错误是: 未定义命名空间“React”。(“公开”声明) 未定义类型PureStatelessComponent 这是我的密码 module ContactInfoComponent open Fable.Core open Fable.Core.JsInterop open Fable.Import open Fable.Import.Browser open Fable.React op

我正试图用F#with Fable编写一个React组件,但在引用必要的库时遇到了问题。我得到的编译错误是:

  • 未定义命名空间“React”。(“公开”声明)
  • 未定义类型PureStatelessComponent
这是我的密码

module ContactInfoComponent

open Fable.Core
open Fable.Core.JsInterop
open Fable.Import
open Fable.Import.Browser
open Fable.React
open Fable.React.Helpers


type ContactInfoProps = {
    Name : string
}

type ContactInfoComponent(initialProps) = 
    inherit PureStatelessComponent<ContactInfoProps>(initialProps)
    override this.render() = 

        div [] [ 
            str "Name: "
            input [Type "text" Id "txtName"]
        ]

如何解决这些编译错误

我建议改用NuGet版本,就像您在Fable.Browser.Dom中所做的那样马克帕蒂森

对!我通过在.csproj文件中添加NuGet包引用修复了此问题:

  <ItemGroup>
    <PackageReference Include="Fable.Core" Version="3.1.5" />
    <PackageReference Include="Fable.Browser.Dom" Version="1.0.0" />
    <PackageReference Include="Fable.React" Version="6.2.0" />
    <PackageReference Include="Fable.PowerPack" Version="3.0.0" />
  </ItemGroup>
</Project>


现在我要看看是否可以从package.config中删除这些引用。我不认为我的F#代码实际上引用了node#U modules文件夹中的DLL。

我认为Fable.NET软件包的npm版本(例如,
Fable react
)非常过时。我建议改用NuGet版本,就像您在
Fable.Browser.Dom
中所做的那样。
  <ItemGroup>
    <Reference Include="node_modules/fable-core/Fable.Core.dll" />
    <Reference Include="node_modules/fable-powerpack/Fable.PowerPack.dll" />
    <Reference Include="node_modules/fable-react/Fable.React.dll" />
    <PackageReference Include="Fable.Browser.Dom" Version="1.0.0" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Fable.Core" Version="3.1.5" />
    <PackageReference Include="Fable.Browser.Dom" Version="1.0.0" />
    <PackageReference Include="Fable.React" Version="6.2.0" />
    <PackageReference Include="Fable.PowerPack" Version="3.0.0" />
  </ItemGroup>
</Project>