React实现抽屉组件

简介

本文将会基于react实现简单的抽屉组件功能。抽屉会在以下几个方面改进。

1、抽屉显示状态由父组件state控制。

2、如果抽屉不需要显示时候,返回null。

Drawer.js

抽屉组件,通过父组件传递isOpen状态来开启或关闭抽屉。

javascript 复制代码
export const Drawer = ({isOpen, children}) => {
    const [visible, setVisible] = useState(false);

    useEffect(() => {
        setVisible(isOpen)
    }, [isOpen]);

    return visible ? (
        <div>
            {children}
        </div>
    ) : null
}

App.js

javascript 复制代码
function App() {
    const users = [{
        id: '123',
        name: 'vicyor'
    },
        {
            id: '456',
            name: 'john'
        }]
    return (
        <div className="App">
            {
                users.map(user => {

                     function UserListItem({user}){
                        const [open, setOpen ] = useState(false);
                        return (
                            <div>
                                <span>id:{user.id}</span>
                                <Drawer isOpen={open}><span>username: {user.name}</span></Drawer>
                                <input type='button' onClick={event => {setOpen(!open)}} value={open?'关闭详情':'打开详情'}/>
                            </div>
                        );
                    }
                    return <UserListItem user = {user} key = {user.id}/>
                })
            }
        </div>
    );
}
相关推荐
空想兔7 小时前
AgentPulse:实时监控所有的 OpenCode Agent 跑到哪一步了
react.js·ai编程
YIAN8 小时前
React + Zustand + JWT 前端权限体系完整实现:从登录鉴权到路由守卫全流程拆解
前端·react.js·架构
光影少年13 小时前
react navite高频手写/实操题
前端·javascript·react native·react.js·前端框架
梦想的颜色14 小时前
【AI实战】React‑Native + AI 移动端 APP 完整实战全流程|云端 / 本地大模型、Agent 集成、安装配置、避坑指南
react.js·大模型·app·agent·reactnative·expo·ai 应用开发
zzzzzz31018 小时前
react-bits:酷炫动效之外,React 组件库还能提供什么
javascript·react.js·动效
专业抄代码选手1 天前
08|Fiber 上的 `useState`:状态终于属于具体组件
前端·javascript·react.js
BreezeJiang2 天前
为什么生成了 dist,项目还是可能跑不起来?从一个 React + Express + MySQL 项目看部署闭环
nginx·react.js
奴心2 天前
我受够了 value / defaultValue / onChange 三连——一个 prop 重构 React 受控组件
react.js
用户298698530142 天前
React 中 HTML 内容转 Word 文档的实现方案
javascript·react.js·html
浮生望2 天前
React JWT 登录鉴权实战:Zustand 状态管理 + Axios 拦截器 + 路由守卫完整链路
react.js