在 Web 应用中,保护用户隐私是非常重要的。本文将介绍如何在表格中实现手机号部分隐藏,并在点击后显示完整手机号,同时使用 Ant Design 图标增强用户体验。
目录
- 准备工作
- 创建自定义单元格组件
- 配置表格列
- 完整代码示例
- 总结
1. 准备工作
首先,确保你已经安装了 antd
和 @ant-design/icons
:
2. 创建自定义单元格组件
我们将创建一个名为 PhoneNumberCell
的自定义单元格组件,用于展示手机号,并在点击时切换显示状态。
PhoneNumberCell
组件
import React, { useState } from 'react';
import { EyeInvisibleOutlined, EyeTwoTone } from '@ant-design/icons'; // 导入 Ant Design 图标
const PhoneNumberCell = ({ phone, onShowFullPhone }) => {
const [showFullPhone, setShowFullPhone] = useState(false);
const handlePhoneClick = () => {
setShowFullPhone(!showFullPhone);
onShowFullPhone(); // 可以在这里执行其他操作,比如记录日志
};
const displayPhone = showFullPhone ? phone : `${phone.slice(0, 3)}****${phone.slice(-4)}`;
return (
<div onClick={handlePhoneClick} style={{ cursor: 'pointer', display: 'flex', alignItems: 'center' }}>
{displayPhone}
<span style={{ marginLeft: 5 }}>
{showFullPhone ? <EyeInvisibleOutlined /> : <EyeTwoTone />}
</span>
</div>
);
};
export default PhoneNumberCell;
3. 配置表格列
接下来,在父组件中配置表格列,并使用 PhoneNumberCell
组件来展示手机号。
import PhoneNumberCell from "./component/PhoneNumberCell";
{
title: 'mobile',
dataIndex: 'mobile',
key: 'mobile',
with:150,
render: (mobile, record) => (
<PhoneNumberCell phone={mobile} onShowFullPhone={() => console.log('Show full phone number')} />
)
},