问题描述
我正在尝试在我的 Meteor React 应用程序中使用 FlowRouter 和 react-mounter,但收到以下错误消息:
警告:React.createElement:类型无效——需要一个字符串 (对于内置组件)或类/函数(对于复合 组件)但得到:对象。
client/main.html
在正文中有这个 div:
<div id="root"></div>
带有client/main.jsx
:
import React from "react";
import { Meteor } from "meteor/meteor";
import { render } from "react-dom";
import { App } from "/imports/ui/App";
import "/client/router";
Meteor.startup(() => {
render(<App/>,document.getElementById("root"));
});
client/router.jsx
有这条路线:
import React from "react";
import { FlowRouter } from "meteor/ostrio:flow-router-extra";
import { mount,withOptions } from "react-mounter";
import App from "/imports/ui/App";
import Start from "/imports/ui/Start";
const mount2 = withOptions({
rootId: "root"
},mount);
FlowRouter.route("/",{
name: "Start",action() {
console.log("start");
mount2(App,{
content: <Start />
});
}
});
imports/ui/App.jsx
:
import React from "react";
export const App = ({content}) => {
console.log("content",content);
return <div>{content}</div>
};
内容打印 undefined
。
以及我想要渲染的 imports/ui/Start.jsx
组件:
import React from "react";
export const Start = () => (
<div>
start
</div>
);
我错过了什么?
解决方法
我的问题是 /client/router.jsx
中的导入应该有大括号,例如:
import { App } from "/imports/ui/App";
import { Start } from "/imports/ui/Start";