reactjs - 带有功能组件的事件
问题描述
我刚刚开始学习 REACT,并在网上学习了一些课程。我创建了一个非常简单的函数组件,并且我想实现一个事件,父组件可以使用它。我可以在网上找到很多关于如何使用类组件的绑定(构造函数)来执行此操作的示例和文章。但是我还没有找到任何关于功能组件的文章。任何人都有关于如何执行此操作的简单示例或文章?总的来说,我看到很多关于使用函数组件而不是类组件的建议,但更多的文章和框架是人们使用类组件的。功能组件是否相当新?
import React, { useState } from "react";
import {
Dropdown,
DropdownToggle,
DropdownMenu,
DropdownItem,
Button
} from "reactstrap";
const DropdownPaging = props => {
const [selectedValue, setSelectedValue] = useState(10);
const [dropdownOpen, setDropdownOpen] = useState(false);
const toggle = () => setDropdownOpen(prevState => !prevState);
function dropDownChanged(val) {
setSelectedValue(val);
}
return (
<div>
<table>
<tr>
<td>
<Button outline color="dark">
<
</Button>
</td>
<td>
<Button outline color="dark">
>
</Button>
</td>
<td>
<Dropdown isOpen={dropdownOpen} toggle={toggle}>
<DropdownToggle caret outline color="dark">
{selectedValue}
</DropdownToggle>
<DropdownMenu>
<DropdownItem onClick={() => dropDownChanged(10)}>
10
</DropdownItem>
<DropdownItem onClick={() => dropDownChanged(25)}>
25
</DropdownItem>
<DropdownItem onClick={() => dropDownChanged(50)}>
50
</DropdownItem>
<DropdownItem onClick={() => dropDownChanged(100)}>
100
</DropdownItem>
</DropdownMenu>
</Dropdown>
</td>
</tr>
</table>
</div>
);
};
export default DropdownPaging;
解决方案
不,功能组件是很久以前就有的,功能组件的新特性之一是处理状态和生命周期方法
所以在 16.8 之前的版本,函数式组件纯粹是用来渲染表现部分的,所以不能处理状态,不能处理生命周期方法
因此,在处理大型应用程序时,问题是如果您需要单个状态变量,则需要将功能组件更改为类组件
所以在 16.8 发布之后,React 团队引入了 hooks,所以现在你可以借助 hooks 来处理状态和生命周期方法
钩子是怎么来的
你可以在这里阅读更多关于钩子的信息。
使用钩子的例子
如果您正在更新并尝试上述代码和框,请分叉并更新。(这对其他人会有所帮助:))
推荐阅读
- linux - 我如何编写一个只在任何一个半小时运行的 cron (xx:30)
- arrays - 检查数字序列是否在增加
- ruby-on-rails - 删除方法不起作用 rails controller
- asp.net - Asp.net core mvc role-based authorization with Azure AD
- javascript - 对表格进行排序但表格标题已损坏
- c# - 在 C# 中使用 WordPress REST API 获取帖子作者显示名称
- node.js - Express API 发布请求在本地工作,但在 Heroku 上失败
- python - 如何在 pygame 上显示随机图片(骰子)并为其赋值?
- configuration - 为什么 Serilog LoggerEnrichmentConfiguration 操作未实现
- php - 在对象数组 (JSON) 中编辑对象的特定键值