我是新手,所以如果我似乎不理解一些明显的概念,请耐心等待,但我编写了一个配置文件日志函数,配置文件的结构如下:
{身份证: 1,姓名:约翰·史密斯,年龄: 27,身高: 186厘米,性别:男}
我正在设计一个react函数(用于学习),它可以对配置文件进行排序、添加、删除和修改。
要编辑我使用钩子的配置文件。然后我使用钩子函数作为组件内部的道具。
我调用一个“Header”函数,它使用一个“PrintOut”函数,该函数显示DOM上的每个配置文件以及一个delete、edit和Change-gender按钮。
它还需要3个道具,配置文件状态,删除功能和切换(性别变化)功能。性别变更功能是点击启动的,目前,它所要做的只是控制台日志“你点击了性别变更功能”和ID。
而不是这样做,控制台只是记录每个配置文件的句子,而无需单击。当我点击“改变性别”按钮时,什么也没发生。
我想知道为什么会出现这种情况,我能做些什么来解决它?
这是密码
应用程序。js
import "./styles.css";
import Header from "./component/Header";
import Buttons from "./component/Buttons";
import { useState } from "react";
export default function App() {
const [names, assortNames] = useState([
{
id: 1,
name: "John",
age: 18,
height: 184,
gender: "male"
},
{
id: 2,
name: "Billy",
age: 24,
height: 191,
gender: "male"
},
{
id: 3,
name: "Sara",
age: 26,
height: 171,
gender: "female"
},
{
id: 4,
name: "Ryan",
height: 186,
age: 27,
gender: "male"
}
]);
const AgeFilter = () => {
assortNames(
[...names].sort((a, b) => {
return b.age - a.age;
})
);
};
const nameFilter = () => {
assortNames([...names].sort((a, b) => a.name.localeCompare(b.name)));
};
const heightFilter = () => {
assortNames(
[...names].sort((a, b) => {
return b.height - a.height;
})
);
};
const DeleteName = (id) => {
assortNames(names.filter((names) => names.id !== id));
};
const GenderChange = (id) => {
console.log('You clicked gender change function', id)
};
return (
<div className="container">
<Buttons
list={names}
Age={AgeFilter}
Name={nameFilter}
Height={heightFilter}
/>
<Header namez={names} functs={DeleteName} Toggler={GenderChange} />
</div>
);
}
Header.js
import PrintOut from "./PrintOut";
const Header = ({ namez, functs, Toggler }) => {
return (
<>
{namez.map((name) => (
<PrintOut key={namez.id} name={name} onDelete={functs} onToggle ={Toggler} />
))}
</>
);
};
export default Header;
打印输出。js
const PrintOut = ({ name, onDelete, onToggle }) => {
const Deleter = (id) => {
onDelete(name.id);
};
return (
<div className={name.gender === "male" ? "male" : "female"} key={name.id}>
<h3>{name.name}</h3>
<div className="Age-and-Height">
<p> {name.age}</p>
<h4> {name.height} cm</h4>
</div>
<button className="btn btn-delete" onClick={() => Deleter(name.id)}>
Delete
</button>
<button className="btn btn-edit">Edit</button>
<button className="btn " onClick={onToggle(name.id)}>
Change Gender
</button>
</div>
);
};
export default PrintOut;
Buttons.js
const Buttons = ({ list, Age, Name, Height }) => {
return (
<>
<div className="buttons">
<button className="btn" onClick={Age}>
AgeSort
</button>
<button className="btn" onClick ={Height}>HeightSort</button>
<button className="btn" onClick ={Name}>NameSort</button>
<button className="btn btn-add" >Add</button>
</div>
</>
);
};
export default Buttons;
你没有传递id那个函数
Toggler={() => GenderChange(id)}
在这里,您可以在呈现函数时直接调用该函数:
<button className="btn " onClick={onToggle(name.id)}>
Change Gender
</button>
因此,您需要将其更改为回调函数:
<button className="btn " onClick={() => onToggle(id)}>
Change Gender
</button>
还将id添加到子组件中
我已经创建了一个对我来说很好的Webpack构建——它有一个用于热重新加载的dev服务器,还有一个运行模板html文件并集成文件。 这一切都很好,但当我在我的开发服务器上工作时,控制台会给我如下错误消息: 它引用了是错误的来源,而不是我正在使用的组件,这使得很难追踪错误的来源。 据控制台所知,我知道它是包含错误的文件,但如何让控制台记录预绑定代码?(例如,) 提前感谢。
嘿,我想知道控制台中的输出是否可能与文件输出中的输出相同。 这是我的XML配置。 滚动文件中的输出 在控制台中为空。但是现在如果我改变 到"追踪" 将是2,4,6。。。。在控制台和我的文件中,它将是1,3,5,7。。。这很容易理解。 但是我的问题是,我们如何在控制台和文件中同时拥有相同的日志级(跟踪)输出?(添加包名称和级别的标签不起作用) 与此问题相关: log4j2 xml配置-登录到文件和控
问题内容: 我想在量角器测试中输出div的文本,到目前为止,我有: 但这输出 我尝试了“ toString()”,结果相同。 有没有办法将文本输出到控制台? 问题答案: 和其他大多数量角器方法都返回承诺。您想将您的陈述放入承诺解决方案中: 使用新的量角器语法:
Laravel中是否有类似的东西允许您查看正在执行的实际SQL?例如,在Rails中,您可以在控制台中看到SQL。在Django中,您有一个工具栏。 在《拉威尔4》中有类似的东西吗? 澄清一下:我的问题是如何在没有代码的情况下做到这一点。Laravel中是否有内置的东西不需要我在应用程序中编写代码? 更新:最好我也希望看到CLI查询(例如)
问题内容: 通过使用reactjs后挂机,不返回此状态下的电流值,我该如何处理呢? 这是这种情况的代码,尝试找出控制台日志的显示内容。 问题答案: 默认情况下,只做一件事,只做一件事,设置新状态并导致函数重新呈现。它本质上是异步的,因此默认情况下,通常在它运行之后运行的方法。 从您的示例中,在页面的全新加载中,键入’s’导致useState更改状态,但是由于它是异步的,因此将使用旧的状态值来调用,
本文向大家介绍C#控制台程序使用Log4net日志组件详解,包括了C#控制台程序使用Log4net日志组件详解的使用技巧和注意事项,需要的朋友参考一下 C#控制台程序使用Log4net日志组件,供大家参考,具体内容如下 1、Log4net一般都不陌生,但是在配置上不同类型的项目又不相同的地方比如C#控制台程序和C# MVCWeb项目,拿控制台项目为例 项目源码在文章底部 2、首先创建一个控制台程序