我试图在返回几个元素的驾驶舱函数中使用use效应,但我得到了这个奇怪的错误,说“第6行: React Hook”use效应在函数“驾驶舱”中被称为“驾驶舱”,它既不是React函数组件,也不是自定义的React Hook函数反应-钩子/钩子规则”。
但我的座舱组件肯定是一个功能?
import React, { useEffect } from 'react'
import classes from './Cockpit.css'
const cockpit = (props) => {
useEffect(() => {
console.log('I work!')
})
const assignedClasses = []
let btnClass = ''
if (props.showPersons) {
btnClass = classes.Red;
}
if (props.persons.length <= 2) {
assignedClasses.push(classes.red)
}
if (props.persons.length <= 1) {
assignedClasses.push(classes.bold)
}
return (
<div className={classes.Cockpit}>
<h1>{props.title}</h1>
<p className={assignedClasses.join(' ')}>HELLO, HELLO!</p>
<button
className={btnClass}
onClick={props.clicked}>Click me!</button>
</div>
)
}
export default cockpit
//This is the exact solution
import React, { useEffect } from 'react';
import classes from './Cockpit.css';
const Cockpit = props => {
useEffect(() => {
console.log('[Cockpit.js] useEffect');
// Http request...
setTimeout(() => {
alert('Saved data to cloud!');
}, 1000);
return () => {
console.log('[Cockpit.js] cleanup work in useEffect');
};
}, []);
useEffect(() => {
console.log('[Cockpit.js] 2nd useEffect');
return () => {
console.log('[Cockpit.js] cleanup work in 2nd useEffect');
};
});
// useEffect();
const assignedClasses = [];
let btnClass = '';
if (props.showPersons) {
btnClass = classes.Red;
}
if (props.persons.length <= 2) {
assignedClasses.push(classes.red); // classes = ['red']
}
if (props.persons.length <= 1) {
assignedClasses.push(classes.bold); // classes = ['red', 'bold']
}
return (
<div className={classes.Cockpit}>
<h1>{props.title}</h1>
<p className={assignedClasses.join(' ')}>This is really working!</p>
<button className={btnClass} onClick={props.clicked}>
Toggle Persons
</button>
</div>
);
};
export default Cockpit;
// Look out for the identifier names of the const and the export
根据反应文档用户定义的组件必须大写!
如果您仅使用react,则可以定义以小写字母开头的组件函数名,但您是否注意到,在渲染中使用组件时,您将其用作“导入源”/等等。因此,如果您确实有一个以小写字母开头的组件,请在JSX中使用它之前将其分配给大写变量。
但是如果您在该组件中使用带有react的钩子,那么您的组件必须大写。我也看过我的课程。那个家伙对名为component的鸡尾酒很满意,但我认为这与react和hook的版本有关!
我再次注意到您正在使用css模块。您是否设置了使用css模块作为课程的配置??我必须提到的是,您可以使用css模块而无需运行“npm run eject”,这些复杂的config as React 2支持css模块,您只需更改的扩展名即可。css
到。单元css
以下是您的应用程序的干净代码:
import React, { useEffect } from 'react'
import classes from './Cockpit.module.css'
const Cockpit = (props) => {
useEffect(() => {
console.log('I work!')
})
const assignedClasses = []
let btnClass = ''
if (props.showPersons) {
btnClass = classes.Red;
}
if (props.persons.length <= 2) {
assignedClasses.push(classes.red)
}
if (props.persons.length <= 1) {
assignedClasses.push(classes.bold)
}
return (
<div className={classes.Cockpit}>
<h1>{props.title}</h1>
<p className={assignedClasses.join(' ')}>HELLO, HELLO!</p>
<button
className={btnClass}
onClick={props.clicked}>Click me!</button>
</div>
)
}
export default Cockpit
仅供参考,组件名称应以大写字母开头
问题内容: 我和之间有关系 所以当我尝试持久化对象时 我懂了 如您所见,它尝试插入正确的值,但是以某种方式将其标记为语法错误。我认为它缺少左右的单引号,但是由于它是在后台进行查询的,所以我不知道如何解决它。请注意,我对同一项目中的其他实体执行了完全相同的操作,并且工作正常。太沮丧了!! 问题答案: GROUP确实是保留的关键字,您必须对其进行转义。在JPA 2.0中,有一种标准化的方法来指定分隔标
所以我在做一个定时器包装函数,但是我在尝试打印参数的时候不断地得到错误。 我的计时器功能看起来是这样的: 理想的情况下,它也会打印kwargs,但显然这是一个完全不同的问题,尽管我会非常感谢如果有人帮助我做这件事。所以当没有一个论点的时候,我的结果很好: 给出:使用参数1000执行dummy_fn,取:0.2128157615661621 但是,如果我重新定义dummy_fn以获取更多的参数并传递
我有一个数据帧,我试图在条形图中绘制,但我面临一个奇怪的错误。 print语句给出: 然后是绘图代码:给出以下错误: ---------------------------------------------------------------------------KeyError回溯(最近一次调用上次)~/opt/anaconda3/lib/python3。8/现场包/熊猫/核心/索引/基础。
我们正尝试通过以下http请求获取Office 365组元数据:https://graph.microsoft.com/v1.0/groups/?$select=description、displayName、groupTypes、mail、mailEnabled、mailNickname、onpremissieslastsyncdatetime、onpremissiessecurityident
问题内容: 我正在尝试在节点中使用Express,安装一切正常,进行编译,获取npm并通过以下方式安装express: npm安装快递 问题是,每次我尝试“要求”它时,都会给我一个错误!看一下一个简单的文件app.js: 当我运行它时: 有人能帮我吗?为什么会出现此错误?如何安装与Express不同的版本? 问题答案: 问题是,你可能有最新的连接(而不是“您需要安装最新的连接”)的命令@Shrip
有时,我的应用程序在启动时会随机出现故障,它会在应用程序类中崩溃,用户无法再次打开应用程序,直到他们进入设置并清除应用程序数据 “DiskbasedBache”试图分配超过1GB的内存,原因并不明显 我怎么才能让这一切不发生?这似乎是Volley的一个问题,或者是一个基于自定义磁盘的缓存的问题,但是我没有立即看到(从堆栈跟踪中)如何‘清除’这个缓存,或者做一个条件检查或者处理这个异常 欣赏洞察力