Error: Invalid hook call. Hooks can only be called inside of the body of a function component.

Error: Invalid hook call. Hooks can only be called inside of the body of a function component.This could happen for one of the following reasons:

1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app

See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.

报错原因

  具体报错如上,错误原因是,没有把 hook 当做一个 Function Component ,而是当做了 Function 进行调用。下面是调用过程:

import React, { Component, Fragment } from 'react';
import { Example } from './Example.js'; //引入 hook 组件

class App extends Component {
	render() {
		return (
			<Fragment>
				<div>some thing...</div>
				{
					Example()  //执行
				}
			</Fragment>
		);
	}
}

export default App;

   hook 组件部分如下:

import React, { useState } from 'react';

export function Example() {
	 const [num, updateNum] = useState(0)
	 return <p onClick={() =>updateNum(num => num + 1)}>{num}</p>
}

解决方法

  正确的调用方式应该是组件式的调用:

import React, { Component, Fragment } from 'react';
import { Example } from './Example.js';

class App extends Component {
	render() {
		return (
			<Fragment>
				<div>some thing...</div>
				<Example />//写成一个组件,而不是执行函数
			</Fragment>
		);
	}
}

export default App;




  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当使用LaTeX编译CJK(中日韩)字符时,可能会出现"package cjk error: invalid character code. \xdufrontmatter"的错误。这个错误通常是由于在CJK代码中出现了无效的字符代码所导致的。 在解决这个错误之前,我们首先需要了解几个相关的概念。CJK包是一个用于处理中日韩字符的LaTeX宏包,它提供了一种方便的方法来输入和处理这些字符。而"xdufrontmatter"是可能由XDUThesis等模板或包提供的一个命令或选项,用于设置论文的封面和前置部分。 要解决"package cjk error: invalid character code. \xdufrontmatter"错误,我们可以采取以下几种方法: 1. 检查字符代码:请确保在CJK代码中没有使用无效的字符代码。常见的错误包括使用unicode范围之外的代码或未定义的代码。检查并修复这些错误将有助于消除无效字符代码的问题。 2. 检查CJK包的版本:确保你正在使用最新版本的CJK包。旧版本的CJK包可能会存在一些已知的错误和限制,升级到最新版本可能会解决一些问题。 3. 检查模板或包的文档:如果你使用的是特定的模板或包,并在使用xdufrontmatter命令或选项时遇到问题,请仔细查阅相关文档。有时,模板或包的作者会提供特定的使用说明或解决方案,以帮助解决错误。 4. 避免使用无效的CJK代码:如果发现某些CJK代码一直导致错误,可能是因为这些代码被认为是无效的或不受支持的。尝试使用其他有效的代码或考虑使用不同的方法来处理中日韩字符。 总之,"package cjk error: invalid character code. \xdufrontmatter"错误是由于在CJK代码中出现无效字符代码引起的。通过检查字符代码、升级CJK包、查阅文档和避免无效的CJK代码,我们可以解决这个错误并顺利编译LaTeX文档。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值