Reactjs jsx元素类型xx没有任何构造或调用签名

Reactjs jsx元素类型xx没有任何构造或调用签名,reactjs,typescript,Reactjs,Typescript,我正在react应用程序中使用typescript。当使用条件语句返回组件时,我遇到: JSX元素类型“XXX”没有任何构造或调用签名 我制作了两个组件,分别命名为A和B const A=()=>A 常数B=()=>B 我希望根据条件呈现其中一个,因此我的代码如下所示: render(){ const RenderingComponent=someCondition?A:B 返回( ) } VSCode向我显示错误:JSX元素类型“RenderingComponent”没有任何构造或调用签名

我正在react应用程序中使用typescript。当使用条件语句返回组件时,我遇到:
JSX元素类型“XXX”没有任何构造或调用签名

  • 我制作了两个组件,分别命名为A和B
  • const A=()=>A
    常数B=()=>B
    
  • 我希望根据条件呈现其中一个,因此我的代码如下所示:
  • render(){
    const RenderingComponent=someCondition?A:B
    返回(
    )
    }
    
  • VSCode向我显示错误:
    JSX元素类型“RenderingComponent”没有任何构造或调用签名
    附言: 我知道我们可以使用最常用的方式渲染基于条件的组件,如:
  • 
    {条件?:}
    

    我只是想知道如何让它工作,或者为什么不应该用这种风格写作,谢谢。)

    从TS 3.2开始,这应该可以工作。您使用的是什么版本的TS?不应该
    RenderingComponent
    返回
    ,然后使用
    {RenderingComponent}
    @Baruch
    RenderingComponent
    可以有条件地成为
    A
    B
    ,这应该在IMO中起作用(我在本地测试了它,它确实起作用)@TitianCernicova Dragomir我的TypeScript版本是3.4.5。@Baruch,事实上,这种类型的编码可以真正按照预期呈现,问题是VSCode给了我这个错误消息。这应该可以从TS 3.2开始工作。您使用的是什么版本的TS?不应该
    RenderingComponent
    返回
    ,然后使用
    {RenderingComponent}
    @Baruch
    RenderingComponent
    可以有条件地成为
    A
    B
    ,这应该在IMO中起作用(我在本地测试了它,它确实起作用)@TitianCernicova Dragomir我的TypeScript版本是3.4.5。@Baruch,事实上,这种类型的编码可以真正按照预期呈现,问题是VSCode给了我这个错误消息。