【问题标题】:Always getting "(0 , _reactDom.h) is not a function" or "h is not defined"总是得到“(0,_reactDom.h)不是函数”或“h未定义”
【发布时间】:2019-02-12 09:32:52
【问题描述】:

所以我目前正在开发一个利用电子、反应、redux 和其他一些技术的应用程序。 目前,我只在项目中包含了 electron、react、electron-compile 和 babel。 Redux 已安装但尚未真正配置。

所以当我尝试加载应用程序时,我总是收到一条错误消息:

index.js:26 Uncaught ReferenceError: h is not defined

所以我在网上看了一点,发现有些使用 preact 的人也有类似的问题。他通过导入 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 根的 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 标签,但我只收到错误消息和白屏。

亲切的问候, 弗罗多先生

【问题讨论】:

  • 使用默认导出:`import Demopage from './demopage';
  • ReactDOM 没有 h 导出。为什么需要它?为什么决定要有一个?
  • 因为否则我会收到 index.js:26 Uncaught ReferenceError: h is not defined 错误。

标签: javascript reactjs electron


【解决方案1】:

react-dom 导入中删除h

import { render } from 'react-dom';

【讨论】:

  • 然后我会得到错误index.js:26 Uncaught ReferenceError: h is not defined
【解决方案2】:

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

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

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

如果上述 sn-p 解决了您的问题,请告诉我。祝你好运!

【讨论】:

    【解决方案3】:

    我最终选择了 parcel,因为设置和使用 Babel 7 并没有那么难。 我认为错误在于 babel 将我的 react 内容转换为 preact,但仍不确定。

    【讨论】:

      猜你喜欢
      • 2018-12-23
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多