reactjs - 尝试渲染组件时类型无效
问题描述
我正在尝试在 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";
推荐阅读
- javascript - 我应该将预加载器图像放在页面加载的哪个位置?
- proc-r-package - 与 AUC 的 pROC 测试差异 = 0.5
- c - 为什么我的代码不倒带并将输入保留在缓冲区中?
- python - 我如何从互联网上随机拍摄一张照片(从关键字的结果中),然后让 python 显示给我看?
- javascript - Spark AR - 启用从脚本到补丁编辑器的动画
- java - 根据预定义的规则集将输入集分类
- angular - 如何将布尔值从服务发送到可观察的组件?(Angular)
- php - 为什么我在使用 axios 发出 post 请求时收到 500 服务器错误?
- javascript - 使用 TypeScript 的 Vue i18n 出错:“类型 'VueConstructor' 上不存在属性 '$t'。”。我该如何解决?
- c# - 如何使用循环将 URL 中的字符串替换为列表中的每个整数?