我正在研究新的(和令人敬畏的)GraphQL查询组件。我的导出声明似乎有问题。我收到了控制台错误:
警告:React.createElement:type无效 - 需要一个字符串 (对于内置组件)或类/函数(对于复合 组件)但得到:未定义。你可能忘了导出你的 来自其定义的文件中的组件,或者您可能已经混淆了 默认和命名导入。
检查
index.js
的渲染方法。 ..... App.js:30:4.....
错误:元素类型无效:期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:undefined。您可能忘记从其定义的文件中导出组件,或者您可能混淆了默认导入和命名导入。 ..... index.js / index.js:77:4
以下是代码:
App.js
14 import App from "../../ui/App";
.....
70 const ApolloApp = () => (
71 <ApolloProvider client={client}>
72 <App />
73 </ApolloProvider>
74 );
75
76 Meteor.startup(() => {
77 render(<ApolloApp />, document.getElementById("app"));
78 });
就命名与默认导入而言,这是来自{{1}}的匹配导入语句:
import.js
{{1}}
如何更正此错误?
提前致谢所有信息。
答案 0 :(得分:1)
当组件不是React组件,字符串或函数时,会出现此错误消息。通常这是因为其中一个是undefined
。调试此方法的最简单方法是中断render方法并查看组件,或者console.log
所有组件(console.log(Query, RegisterForm, ...)
)。