我想用React和MaterialUI创建一个Electron应用程序.
界面看起来很漂亮,但是当我点击抽屉按钮时没有任何反应.实现了路由,但每当我尝试在MenuItem内部或周围插入时,它就会抛出
警告:React.createElement:type无效 - 期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:undefined.您可能忘记从其定义的文件中导出组件.检查渲染方法
MenuBar.
这是我的代码:
// App.js
import './assets/css/App.css';
import React, { Component } from 'react';
import { render } from 'react-dom';
import MenuBar from './components/MenuBar';
import { BrowserRouter as Router, Route, Link} from 'react-router-dom';
import About from "./screens/About";
import SomePage from "./screens/SomePage";
class App extends Component {
render() {
return (
<Router>
<div>
<MenuBar></MenuBar>
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/about">About</Link></li>
<li><Link to="/somepage">Topics</Link></li>
</ul>
<hr/>
<Route exact path="/"/>
<Route path="/about" component={About}/>
<Route path="/somepage" component={SomePage}/>
</div>
</Router>
);
} …Run Code Online (Sandbox Code Playgroud)TL,博士:
这是我得到的:
电子
反应
网页包
电子制造商
电子边缘
节点纤维
一些静态资源(.png、.svg 等)
这就是我想要的:
长版本和问题:
当我在开发模式下启动 webpackserver 时,我可以让 Electron、React、Electron Edge、node-fibres、webpack 和静态资源完美运行。
但是,如何将其集成到电子构建器中?
我对整个构建过程很陌生,我只是使用这个样板来开始: 样板的 Github
对我来说,开发调试过程似乎是这样的:
让 webpack 从我的 src 文件夹中创建一个bundle.js 和一个index.html
使用热模式启动一个 webpackserver 来提供这些文件
但是,我应该如何告诉电子构建器从哪里获取不同的文件?dist/ 中没有 package.json ,也没有 node_modules/ ,并且 Node-Fibers 也没有被捆绑(因为 webpack 似乎与 __dirname 或 smth 混在一起,所以我排除了它)。
每当我启动生成的 .exe 文件(这不是安装程序,只是一个应该启动程序的 exe 文件)时,都会出现一条消息,指出在 app.asar 文件中找不到 main.js。我尝试提取它,但在提取整个包之前它失败了。不过,无论如何都不需要 Main.js,因为这就是让 webpack 转译它的全部意义,还是我在这里遗漏了一些东西?
我已经在互联网上搜索了几个小时,但我不明白所有的概念..
这里有人能解释一下我的设置有什么问题以及我可以做些什么来解决这个问题吗?