无法读取 null 的属性“getHostNode”

IT技术 javascript reactjs react-router
2021-05-07 11:15:06

我有一个带有react-router的地平线/react应用程序,我的应用程序中有一个简单的按钮:

<Link className="dark button" to="/">Another Search</Link>

当我单击它时,出现以下异常:

Uncaught TypeError: Cannot read property 'getHostNode' of null

错误来自:

getHostNode: function (internalInstance) {
    return internalInstance.getHostNode();
},

知道为什么我会得到这个吗?

4个回答

我面临着类似的问题。事实证明,就我而言,是 highlighthjs 从生成的 dom 中删除注释。

对于文本,React 15 使用 reactid 而不是 span 标签添加注释,如下所示:

<!-- react-text: 248-->
Another Search
<!--/react-test-->

你能试试这样的吗?

<Link className="dark button" to="/"><span>Another Search</span></Link>

这将强制生成的 DOM 包含具有适当data-reactid属性的跨度

我会向 react-router 提出问题,也许他们可以在内部完成,这样您就不必担心了。但是这存在挑战,因为 Link 子项基本上可以是任何东西。

在过去的几天里,我多次遇到这个问题(刚开始react),几乎在所有情况下,都有一些语法/代码错误在其他任何地方都没有发现。一个例子:如果你写:

getInitialState() {
    showModal: false
},

代替:

getInitialState() {
    return {
        showModal: false
    };
},

你会得到这个错误。除非您的构建过程尚未捕获错误。希望这可以帮助某人(或几天后我自己。Hi Niyaz, you are welcome!)。

如果其他人找到这个线程。对我来说,结果证明这是一个props的空错误。

代码生成错误:

<Menu InventoryCount={this.state.inventoryModel.length} />

工作空检查代码:

<Menu InventoryCount={this.state.inventoryModel ? this.state.inventoryModel.length : 0} />

对我来说,这是一个错字,导致从错误的module导入组件。

import { Link, Icon } from 'react-router';
import { Tag } from 'antd';

它应该是

import { Link } from 'react-router';
import { Tag, Icon } from 'antd';