尝试从模块对象使用HOC时,“函数作为React子无效”

时间:2019-01-14 16:14:00

标签: javascript reactjs module

请参见下面的代码,我试图使用IIFE返回的模块对象中的“ HOC”,以使事情变得简单,首先将大多数代码保存在HTML文件中。但是我得到了“警告”(或者实际上是“错误”,因为我的页面无法显示):“函数作为React子代无效。”

我尝试了一些无效的方法,首先将public static class ProjectorAB { public static Expression<Func<TypeA, TypeB>> Projection { get { var tInfo = new TypeB_SubInfo { prop1 = "", // ... prop5 = "", }; var tItems = new List<TypeB_SubItem>() { }; return new TypeB { Items = tItems, Info = tInfo, }; } } } 添加到()的末尾,与此处的建议(https://stackoverflow.com/a/51220156/34806相同),但是结果是“未捕获的TypeError:不能将类作为函数调用”,这是很有意义的。我也尝试过在return之前加前缀,但这只会导致语法错误。

在没有模块对象的情况下,我的代码主要基于以下要点:https://gist.github.com/sebmarkbage/ef0bf1f338a7182b6775但是我希望除了组件之外还能够接受参数,然后将其存储以供将来参考。我正在尝试的可能吗?谢谢。

withFoobar.HOC(Salutation)()

1 个答案:

答案 0 :(得分:1)

高阶组件返回一个组件。 render期望将React element 而不是 component 作为第一个参数。应该是:

const SalutationWithFooBar = withFooBar.HOC(Salutation);

ReactDOM.render(
    <SalutationWithFooBar />,
    document.getElementById('app-content')
);