当前位置:网站首页>Antd Comment 递归循环评论
Antd Comment 递归循环评论
2022-07-06 21:09:00 【拾忆@y】
一、业务场景:
最近在使用umi和Antd 进行开发,其中在做多级嵌套评论的时候遇到了一些坑,为了大家后面遇到和我一样的问题,给大家分享一下
加粗样式二、解决方案:
先定义函数组件,返回要渲染的页面结构。再书写主函数,写一个递归调用组件的方法,并对之前的函数组件进行循环遍历,通过判断多次调用,最后返回递归组件渲染到页面上
三、具体实现步骤
1、定义函数组件,返回要渲染的页面结构
import { ReactElement, useCallback } from 'react';
import { Avatar, Comment } from 'antd';
const ExampleComment = (props) => {
console.log(props)
const { children, _node: { name } } = props;
return <Comment actions={[<span key="comment-nested-reply-to">Reply to</span>]}
author={
<a>Han Solo</a>}
avatar={
<Avatar src="https://joeschmoe.io/api/v1/random" alt="Han Solo" />}
content={
<p>
{name}
</p>
}
>
{children}
</Comment>
};
2、书写主函数,写一个递归调用组件的方法,并对之前的函数组件进行循环遍历,通过判断多次调用,最后返回递归组件渲染到页面上
function notificationrecord(): ReactElement {
const renderTreeNodes = useCallback(
(node): ReactElement[] => {
if (!node) return [];
return node.map((_node) => (
<ExampleComment key={_node.id} _node={_node}>
{renderTreeNodes(_node.children)}
</ExampleComment>
));
},
[],
);
return (
<>
{
renderTreeNodes(data)
}
</>
);
}
export default notificationrecord;
3、完整代码如下
import { ReactElement, useCallback } from 'react';
import { Avatar, Comment } from 'antd';
const ExampleComment = (props) => {
console.log(props)
const { children, _node: { name } } = props;
return <Comment actions={[<span key="comment-nested-reply-to">Reply to</span>]}
author={
<a>Han Solo</a>}
avatar={
<Avatar src="https://joeschmoe.io/api/v1/random" alt="Han Solo" />}
content={
<p>
{name}
</p>
}
>
{children}
</Comment>
};
function notificationrecord(): ReactElement {
const data = [
{
id: 1,
name: '我是个笨蛋,大写的',
children: [
{
id: 11,
name: '我是个笨蛋,大写的',
children: [{
id: 111,
name: '我是个笨蛋,大写的',
}]
},
{
id: 12,
name: '我是个笨蛋,大写的',
children: [{
id: 121,
name: '我是个笨蛋,大写的',
}]
},
]
},
{
id: 12,
name: '我是个笨蛋,大写的',
children: [
{
id: 121,
name: '我是个笨蛋,大写的',
children: [{
id: 1211,
name: '我是个笨蛋,大写的',
}]
},
{
id: 212,
name: '我是个笨蛋,大写的',
children: [{
id: 1221,
name: '我是个笨蛋,大写的',
}]
},
]
}
]
const renderTreeNodes = useCallback(
(node): ReactElement[] => {
if (!node) return [];
return node.map((_node) => (
<ExampleComment key={_node.id} _node={_node}>
{renderTreeNodes(_node.children)}
</ExampleComment>
));
},
[],
);
return (
<>
{
renderTreeNodes(data)
}
</>
);
}
export default notificationrecord;
四、效果展示
今天的分享到此结束,欢迎小伙伴们一起交流
边栏推荐
- [safe office and productivity application] Shanghai daoning provides you with onlyoffice download, trial and tutorial
- Flutter3.0, the applet is not only run across mobile applications
- QT 项目 表格新建列名称设置 需求练习(找数组消失的数字、最大值)
- VHDL implementation of arbitrary size matrix multiplication
- [leetcode] 700 and 701 (search and insert of binary search tree)
- 大白话高并发(二)
- U.S. Air Force Research Laboratory, "exploring the vulnerability and robustness of deep learning systems", the latest 85 page technical report in 2022
- OSCP工具之一: dirsearch用法大全
- HW-小记(二)
- Open3d mesh filtering
猜你喜欢
Ggplot facet detail adjustment summary
你心目中的数据分析 Top 1 选 Pandas 还是选 SQL?
链表面试常见题
Adaptive non European advertising retrieval system amcad
接口数据安全保证的10种方式
What is the experience of maintaining Wanxing open source vector database
Confirm the future development route! Digital economy, digital transformation, data This meeting is very important
About Confidence Intervals
Arduino droplet detection
codeforces每日5题(均1700)-第七天
随机推荐
数据的存储
leetcode:面试题 17.24. 子矩阵最大累加和(待研究)
Sub pixel corner detection opencv cornersubpix
Construction of Hisilicon universal platform: color space conversion YUV2RGB
Sorting operation partition, argpartition, sort, argsort in numpy
Huawei and Xiaomi "copy each other"
QT item table new column name setting requirement exercise (find the number and maximum value of the array disappear)
web服务性能监控方案
Lab1 configuration script
GPT-3当一作自己研究自己,已投稿,在线蹲一个同行评议
Ubuntu20 installation redisjson record
[security attack and Defense] how much do you know about serialization and deserialization?
Adaptive non European advertising retrieval system amcad
CMB's written test - quantitative relationship
22.(arcgis api for js篇)arcgis api for js圆采集(SketchViewModel)
Calculation of time and space complexity (notes of runners)
你心目中的数据分析 Top 1 选 Pandas 还是选 SQL?
红米k40s root玩机笔记
C# Task拓展方法
Cryptography series: detailed explanation of online certificate status protocol OCSP