我正在学习使用react钩子来管理状态,但我得到了一个错误,即第5:3行:react钩子“useffect”在函数“campot”中被调用,该函数既不是react函数组件,也不是自定义react钩子函数react钩子/钩子规则
这是我的密码
import React, {useEffect} from "react";
import classes from "./Cockpit.module.css";
const cockpit = (props) => {
useEffect(() => {
console.log('Cockpit js useEffect');
});
const assiginedClasses = [];
let btnClass = "";
if (props.showPersons) {
btnClass = classes.Red;
}
if (props.persons.length <= 2) {
assiginedClasses.push(classes.red);
}
if (props.persons.length <= 1) {
assiginedClasses.push(classes.bold);
}
return (
<div className={classes.Cockpit}>
<h1>Hi I'm a React App</h1>
<p className={assiginedClasses.join(" ")}>This is really Working!</p>
<button className={btnClass} onClick={props.clicked}>
Toggle Name
</button>
</div>
);
};
export default cockpit;
我认为use效应钩子更像这样:
useEffect(() => {
effect
return () => {
cleanup
}
}, [input])
当使用useEffect挂钩时,您的主要功能名称应以大写字母useCockpoint
开头,而不是Cockpoint
下线更改后删除错误解决。这个代码是工作。1. const驾驶舱=(道具)=
在第1行下方更换。康斯特驾驶舱=(道具)=
本文向大家介绍在React.js功能组件中使用useEffect(),包括了在React.js功能组件中使用useEffect()的使用技巧和注意事项,需要的朋友参考一下 React钩子useEffect有助于在React的功能组件中添加componentDidUpdate和componentDidMount组合生命周期。 到目前为止,我们知道我们只能在有状态组件中添加生命周期方法。 要使用它,我
如何使用钩子(或任何其他钩子)来复制? 在传统的类组件中,我将执行以下操作: 使用hook: (完整示例:https://codesandbox.io/s/2oo7zqzx1n) 这不起作用,因为在中返回的“cleanup”函数捕获装载期间的道具,而不是卸载期间的道具状态。 如何在不运行函数体(或清除)的情况下对每个道具更改进行清理? 一个类似的问题并没有涉及获得最新道具的部分。 文件状态为: 如
问题内容: 在花了一些时间学习React之后,我了解了创建组件的两个主要范例之间的区别。 我的问题是,什么时候应该使用哪个?为什么?一个人相对于另一个人的利益/取舍是什么? ES6课程: 功能性: 我认为只要没有状态可以由该组件操纵,功能就可以了,是吗? 我猜如果我使用任何生命周期方法,最好使用基于类的组件。 问题答案: 你有正确的主意。如果您的组件只做一些道具和渲染,那么功能就可以了。您可以将它
在花了一些时间学习React之后,我理解了创建组件的两种主要模式之间的差异。 我的问题是什么时候我应该使用哪一个,为什么?一种方法与另一种方法相比有哪些好处/利弊? ES6类: 功能: 我认为只要没有状态可被该组件操纵,就可以正常工作,但就这样吗? 我想如果我使用任何生命周期方法,最好使用基于类的组件。
问题内容: 因此,我正在从基于类的组件转移到功能组件,但在使用jest / zyme编写功能组件内部的方法(显式使用钩子)编写测试时陷入困境。这是我的代码的精简版。 我知道我可以通过导出来编写测试。但是如何测试或方法呢?如果它是基于类的组件,那么我可以将组件变浅,并从实例中将其用作 但这不适用于功能组件,因为无法以这种方式访问内部方法。有什么方法可以访问这些方法,还是应该在测试时将功能组件视为
我有一个应用程序正在使用类组件开发react,我发现了一个功能的代码,我想添加到我的代码中,但它是使用功能组件制作的。代码在这里https://codesandbox.io/s/framer-motion-animate-in-view-gqcc8 但相关部分是这样的。 我不知道如何在我的类组件中添加那个控件变量 我应该把它添加到我的州吗?我不明白如何让它在类组件中工作