总是获取“((0,_reactDom.h)不是函数”或“ h未定义”

时间:2019-02-12 09:32:52

标签: javascript reactjs electron

因此,我目前正在开发一个利用电子,反应,还原和其他技术的应用程序。 目前,我仅将电子,反应,电子编译和babel包括在该项目中。已安装Redux,但尚未真正配置。

因此,当我尝试加载该应用程序时,总是会收到一条错误消息:

  

index.js:26未捕获的ReferenceError:h未定义

因此,我在网上阅读了一些信息,发现有些使用预设的人也有类似的问题。他通过导入h解决了这个问题。 因此,经过一番思考,我从react-dom中导入了h,的确,我得到了不同的错误消息。

  

未捕获的TypeError:(0,_reactDom.h)不是函数

ESLint没有显示关于h尚未解决的任何错误,因此它似乎存在,但是尽管如此,我还是被困在这里,因为我似乎找不到他的来历

index.js

import React from 'react';
import { render, h } from 'react-dom';
import {Demopage} from './demopage'};
render(<Demopage />, document.getElementById('root'));

我的index.html上有一个ID为root的div。然后调用index.js作为脚本。

demopage.js

import React, { Component } from 'react';
class Startpage extends Component {
  constructor(){
    super();
  }
  render(){
    return(
      <h1>Demopage</h1>
    );
  }
}
export default Startpage;

所以我希望电子显示一个显示Demopage的h1标签,但我只会收到错误消息和白色屏幕。

亲切的问候, 佛罗多先生

3 个答案:

答案 0 :(得分:1)

h导入中删除react-dom

import { render } from 'react-dom';

答案 1 :(得分:0)

我最终选择了包裹,因为与Babel 7一起安装和使用并不困难。 我认为错误是由于Babel将我的反应内容转译为预先执行的,但仍不确定。

答案 2 :(得分:0)

我不知道您是否还在寻找解决方案。如果您(或其他人)是,则可能需要查看.babelrc文件(位于项目文件夹的根目录)。它的内容应该是这样的-

{
  "presets": ["@babel/preset-env", "@babel/preset-react"]
}

最初,我遇到类似的错误消息,因为我的项目是为Preact设置的,并且其.babelrc包含对@ babel / plugin-transform-react-jsx的引用-似乎仅对Preact项目有效。

让我知道上面的代码片段是否可以解决您的问题。祝你好运!