首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Go1.20+React18 如何渲染修改用户界面

大家好,我是张大鹏,今天又来给大家分享技术文章了。

今天要分享的是如何在React18中渲染修改用户界面,效果图如下:

要实现这个功能,我们先创建一个UserUpdate.tsx页面,然后在路由中进行注册:

const router = createBrowserRouter([

? ?{

? ? ? ?path: "/",

? ? ? ?element: ,

? ? ? ?errorElement: ,

? ? ? ?// 子路由

? ? ? ?children: [

? ? ? ? ? ?{

? ? ? ? ? ? ? ?//path: "/index",

? ? ? ? ? ? ? ?index: true, // 设置为首页

? ? ? ? ? ? ? ?element:

? ? ? ? ? ?},

? ? ? ? ? ?{

? ? ? ? ? ? ? ?path: "/user-list",

? ? ? ? ? ? ? ?element:

? ? ? ? ? ?},

? ? ? ? ? ?{

? ? ? ? ? ? ? ?path: "/user-update",

? ? ? ? ? ? ? ?element:

? ? ? ? ? ?}

? ? ? ?]

? ?},

? ?// 登录界面

? ?{

? ? ? ?path: "/login",

? ? ? ?element: ,

? ?},

]);

然后我们在用户列表界面中,当渲染表格的时候,增加一个按钮,当点击按钮的时候,我们保存当前按钮对应行的数据,然后跳转到修改用户页面:

const columns: ColumnsType = [

? ?{

? ? ? ?title: '用户名',

? ? ? ?dataIndex: 'username',

? ? ? ?key: 'username',

? ?},

? ?{

? ? ? ?title: '是否激活',

? ? ? ?dataIndex: 'is_active',

? ? ? ?key: 'is_active',

? ? ? ?render: (active) => (

? ? ? ?),

? ?},

? ?{

? ? ? ?title: '姓名',

? ? ? ?dataIndex: 'fullname',

? ? ? ?key: 'fullname',

? ?},

? ?{

? ? ? ?title: '角色',

? ? ? ?dataIndex: 'role',

? ? ? ?key: 'role',

? ?},

? ?{

? ? ? ?title: '性别',

? ? ? ?dataIndex: 'gender',

? ? ? ?key: 'gender',

? ?},

? ?{

? ? ? ?title: '年龄',

? ? ? ?dataIndex: 'age',

? ? ? ?key: 'age',

? ?},

? ?{

? ? ? ?title: '操作',

? ? ? ?key: 'action',

? ? ? ?render: (value, record, index) => (

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ?console.log("修改。。。", value, record, index)

? ? ? ? ? ? ? ? ? ?setJSON("user-update", record)

? ? ? ? ? ? ? ? ? ?navigate("/user-update")

? ? ? ? ? ? ? ?}}>

? ? ? ? ? ? ? ? ? ?修改

? ? ? ? ? ? ? ?详情

? ? ? ? ? ? ? ?修改

? ? ? ? ? ? ? ?删除

? ? ? ?),

? ?},

];

接着来到修改用户界面,读取要修改的用户信息,然后渲染在表单中:

// 重置表单

const onReset = () => {

? ?const user = getJSON("user-update")

? ?// 修改表单默认信息

? ?form.setFieldsValue({

? ? ? ?username: user.username,

? ? ? ?gender: user.gender,

? ? ? ?is_active: user.is_active,

? ? ? ?role: user.role,

? ? ? ?age: user.age,

? ? ? ?fullname: user.fullname,

? ?});

? ?// 设置激活状态

? ?setIsActive(user.is_active)

};

// 加载要修改的用户信息

useEffect(() => {

? ?// 设置标题

? ?document.title = "修改用户信息"

? ?onReset() // 重置表单

}, [])

表单的完整代码如下:

? ?{...layout}

? ?form={form}

? ?name="control-hooks"

? ?onFinish={onFinish}

? ?style={{maxWidth: 600}}

>

? ? ? ? ? ?placeholder="请选择性别"

? ? ? ?>

? ? ? ? ? ?男

? ? ? ? ? ?女

? ? ? ? ? ?保密

? ? ? ? setIsActive(checked)}/>

? ? ? ? ? ?placeholder="请选择角色"

? ? ? ?>

? ? ? ? ? ?管理员

? ? ? ? ? ?用户

? ? ? ? ? ?提交

? ? ? ? ? ?重置

表单需要的依赖变量如下:

// 表单信息

const [form] = Form.useForm();

// 是否激活

const [isActive, setIsActive] = useState(false)

const {Option} = Select;

// 表单布局

const layout = {

? ?labelCol: {span: 8},

? ?wrapperCol: {span: 16},

};

// 按钮布局

const tailLayout = {

? ?wrapperCol: {offset: 8, span: 16},

};

// 提交表单

const onFinish = (values: any) => {

? ?console.log(values);

};

最终,用户列表界面如下:

以上就是今天要分享的全部内容了,谢谢大家~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230604A03TRO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com