• antd 列表list的问题


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 所念皆所得吖 2024-04-23 09:50 采纳率: 69.2% 浏览 5 首页/ 编程语言 / antd 列表list的问题 javascriptcssreact.js antd 列表的问题想要里面的内容都不一样 比如标题那 渲染出来的分别是《论语》《孟子》类似这样子的 又比如下图 不知道 怎么修改遍历的代码 import { LikeOutlined, MessageOutlined, StarOutlined } from '@ant-design/icons'; import { Divider } from 'antd'; import React from 'react'; import './index.scss' import { Avatar, List, Space } from 'antd'; import Roll from '../roll'; const data = Array.from({ length: 23, }).map((_, i) => ({ href: 'https://ant.design', title: `ant design part ${i}`, avatar: `https://api.dicebear.com/7.x/miniavs/svg?seed=${i}`, description: 'Ant Design, a design language for background applications, is refined by Ant UED Team.', content: 'We supply a series of design principles, practical patterns and high quality design resources (Sketch and Axure), to help people create their product prototypes beautifully and efficiently.', })); const IconText = ({ icon, text }) => ( {React.createElement(icon)} {text} ); const ComPart1 = () => (
    { console.log(page); }, pageSize: 3, }} dataSource={data} footer={
    ant design footer part
    } renderItem={(item) => ( , , , ]} extra={ logo } > } title={{item.title}} description={item.description} /> {item.content} )} />
    最新动态
    ); export default ComPart1; 展开全部 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    3条回答 默认 最新

    • 码农阿豪 Java领域优质创作者 2024-04-23 09:54
      关注
      让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
      针对这个问题,可以按照以下步骤进行修改:
      1. 在data变量中添加一个新的属性,比如叫做"titleText",用来存放每一个item的标题文本。
      2. 修改renderItem方法中的List.Item渲染部分,将原先的item.title改为item.titleText,以显示新的标题文本。
      3. 在map函数中,根据需要设置每一个item的titleText属性值,可以手动设置,也可以使用自动生成的方式。 具体实现的代码如下:
      const data = Array.from({ length: 23 }).map((_, i) => ({
        href: 'https://ant.design',
        title: `ant design part ${i}`,
        titleText: `《论语》`,
        avatar: `https://api.dicebear.com/7.x/miniavs/svg?seed=${i}`,
        description:
          'Ant Design, a design language for background applications, is refined by Ant UED Team.',
        content:
          'We supply a series of design principles, practical patterns and high quality design resources (Sketch and Axure), to help people create their product prototypes beautifully and efficiently.',
      }));
      const renderItem = (item) => (
        <List.Item
          key={item.title}
          actions={[
            <IconText icon={StarOutlined} text="156" key="list-vertical-star-o" />,
            <IconText icon={LikeOutlined} text="156" key="list-vertical-like-o" />,
            <IconText
              icon={MessageOutlined}
              text="2"
              key="list-vertical-message"
            />,
          ]}
          extra={
            <img
              width={272}
              alt="logo"
              src="https://gw.alipayobjects.com/zos/rmsportal/mqaQswcyDLcXyDKnZfES.png"
            />
          }
        >
          <List.Item.Meta
            avatar={<Avatar src={item.avatar} />}
            title={<a href={item.href}>{item.titleText}a>}
            description={item.description}
          />
          {item.content}
        List.Item>
      );
      const ComPart1 = () => (
        <div className="ComPart1Box">
          <div className="list">
            <List
              itemLayout="vertical"
              pagination={{
                onChange: (page) => {
                  console.log(page);
                },
                pageSize: 3,
              }}
              dataSource={data}
              footer={
                <div>
                  <b>ant designb> footer part
                div>
              }
              renderItem={renderItem}
            />
          div>
          <div className="roll">
            <Divider orientation="center">最新动态Divider>
            <Roll />
          div>
        div>
      );
      export default ComPart1;
      

      在这个示例代码中,我们添加了一个titleText属性,用来存放每一个item的标题文本。然后在renderItem方法中,将原先的item.title改为item.titleText,以显示新的标题文本。最后在map函数中,手动设置了每一个item的titleText属性值为《论语》。这样就能够根据需要动态设置每一个item的标题文本了。

      展开全部

      评论
      所念皆所得吖 2024-04-23 09:59

      有没有其他方法 因为其他参数也需要修改

      img

      回复
    • GISer Liu 2024-04-23 10:04
      关注

      该回答引用自GPT-3.5,由博主GISer Liu编写:

      问题分析:
      这个问题主要是关于如何使antd列表中的内容不同。目前的代码中,列表中的标题都是类似"ant design part
      ${i}"的形式,想要将这些标题改成不同的内容,比如《论语》、《孟子》等。解决方案需要修改列表数据源中的标题部分。
      解决方案:

      1. 修改数据源的标题部分 :需要修改data数组中每个对象的title属性,使其内容不同。可以直接将标题数组提前准备好,然后在map函数中按序取值,或者利用其他方式生成不同的标题。
      2. 更新列表渲染逻辑 :修改renderItem函数,使其能够正确渲染不同的标题。
        下面是具体的代码修改方案:
        javascriptCopy code
        import { LikeOutlined, MessageOutlined, StarOutlined } from '@ant-design/icons';
        import { Divider } from 'antd';
        import React from 'react';
        import './index.scss'
        import { Avatar, List, Space } from 'antd';
        import Roll from '../roll';
        // 准备不同的标题数组
        const titles = ["《论语》", "《孟子》", "《道德经》", "《易经》", "《老子》", "《荀子》", "《庄子》", "《孙子兵法》", "《左传》", "《史记》", "《资治通鉴》", "《水浒传》", "《红楼梦》", "《西游记》", "《三国演义》", "《鲁迅全集》", "《诗经》", "《楚辞》", "《汉乐府》", "《唐诗三百首》", "《宋词三百首》", "《元曲三百首》", "《现代诗选》"];
        const data = Array.from({ length: 23 }).map((_, i) => ({
        href: 'https://ant.design',
        title: titles[i % titles.length], // 使用取余运算来循环利用标题数组
        avatar: `https://api.dicebear.com/7.x/miniavs/svg?seed=${i}`,
        description: 'Ant Design, a design language for background applications, is refined by Ant UED Team.',
        content: 'We supply a series of design principles, practical patterns and high quality design resources (Sketch and Axure), to help people create their product prototypes beautifully and efficiently.',
        }));
        const IconText = ({ icon, text }) => (
        <Space>
        {React.createElement(icon)}
        {text}
        Space>
        );
        const ComPart1 = () => (
        <div className='ComPart1Box'>
        <div className="list">
        <List
        itemLayout="vertical"
        pagination={{
        onChange: (page) => {
        console.log(page);
        },
        pageSize: 3,
        }}
        dataSource={data}
        footer={
        <div>
        <b>ant designb> footer part
        div>
        }
        renderItem={(item) => (
        <List.Item
        key={item.title}
        actions={[
        <IconText icon={StarOutlined} text="156" key="list-vertical-star-o" />,
        <IconText icon={LikeOutlined} text="156" key="list-vertical-like-o" />,
        <IconText icon={MessageOutlined} text="2" key="list-vertical-message" />,
        ]}
        extra={
        <img
        width={272}
        alt="logo"
        src="https://gw.alipayobjects.com/zos/rmsportal/mqaQswcyDLcXyDKnZfES.png"
        />
        }
        >
        <List.Item.Meta
        avatar={<Avatar src={item.avatar} />}
        title={<a href={item.href}>{item.title}a>}
        description={item.description}
        />
        {item.content}
        List.Item>
        )}
        />
        div>
        <div className="roll">
        <Divider orientation="center">最新动态Divider>
        <Roll />
        div>
        div>
        );
        export default ComPart1;
        
        以上代码中,我使用了一个titles数组来存储不同的标题,然后在map函数中通过取余运算来循环利用这些标题。这样就能确保列表中的标题是不同的了。

      如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

      展开全部

      评论
      所念皆所得吖 2024-04-23 11:29

      那如果是数组对象的形式 还有什么方法吗 是这样的吗

      img

      回复
      GISer Liu 2024-04-23 17:26

      根据您提供的问题描述,您想要修改 Ant Design
      的列表组件中标题的显示,使其显示为不同的内容,比如《论语》、《孟子》等。要实现这个功能,您可以按照以下步骤进行修改:

      1. 准备不同的标题数组 :首先,您需要准备一个包含不同标题的数组,例如:
        javascriptCopy code
        const titles = ["《论语》", "《孟子》", "《道德经》", ...];
        
      2. 修改数据源的标题部分 :在生成列表数据源 data 的地方,将标题部分修改为使用上面准备好的标题数组:
        javascriptCopy code
        const data = Array.from({ length: 23 }).map((_, i) => ({
        href: 'https://ant.design',
        title: titles[i % titles.length], // 使用取余运算来循环利用标题数组
        avatar: `https://api.dicebear.com/7.x/miniavs/svg?seed=${i}`,
        description: 'Ant Design, a design language for background applications, is refined by Ant UED Team.',
        content: 'We supply a series of design principles, practical patterns and high quality design resources (Sketch and Axure), to help people create their product prototypes beautifully and efficiently.',
        }));
        
      3. 更新列表渲染逻辑 :在 renderItem 函数中,确保正确渲染不同的标题:
        javascriptCopy code
        renderItem={(item) => (
        <List.Item
        key={item.title}
        actions={[
        <IconText icon={StarOutlined} text="156" key="list-vertical-star-o" />,
        <IconText icon={LikeOutlined} text="156" key="list-vertical-like-o" />,
        <IconText icon={MessageOutlined} text="2" key="list-vertical-message" />,
        ]}
        extra={
        <img
        width={272}
        alt="logo"
        src="https://gw.alipayobjects.com/zos/rmsportal/mqaQswcyDLcXyDKnZfES.png"
        />
        }
        >
        <List.Item.Meta
        avatar={<Avatar src={item.avatar} />}
        title={<a href={item.href}>{item.title}a>}
        description={item.description}
        />
        {item.content}
        List.Item>
        )}
        
        通过以上修改,您可以实现 Ant Design 列表组件中标题显示为不同内容的效果。如果您有任何疑问或需要进一步帮助,请随时告诉我。

      回复
    • CSDN-Ada助手 CSDN-AI 官方账号 2024-04-23 12:05
      关注

      【相关推荐】



      • 这篇博客: 前端学习-Antd 组件库基础中的 2. List 组件  部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

        最基础的列表展示,可承载文字、列表、图片、段落,常用于后台数据展示页面。

        提供平级的区域将大块内容进行收纳和展现,保持界面整洁。

        • 卡片式的页签,提供可关闭的样式,常用于容器顶部。

        • 既可用于容器顶部,也可用于容器内部,是最通用的 Tabs。

        Radio.Button 可作为更次级的页签来使用。

      • 当某个页面需要向用户显示警告的信息时。

      • 非浮层的静态展现形式,始终展现,不会自动消失,用户可以点击关闭。

      successinfowarningerror 

      "Success Text" type="success" />
      "Info Text" type="info" />
      "Warning Text" type="warning" />
      "Error Text" type="error" />
      • 需要用户处理事务,又不希望跳转页面以致打断工作流程时,可以使用 Modal 在当前页面正中打开一个浮层,承载相应的操作。
      • 另外当需要一个简洁的确认框询问用户时,可以使用 Modal.confirm() 等语法糖方法。

       

      • 需要从一组相关联的数据集合进行选择,例如省市区,公司层级,事物分类等。

      • 从一个较大的数据集合中进行选择时,用多级分类进行分隔,方便选择。

      • 比起 Select 组件,可以在同一个浮层中完成选择,有较好的体验。

      级联选择 Cascader - Ant Design


      如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

      展开全部

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    mysql批量改表名及列名
    C++9 --- 友元
    信息系统项目管理师论文
    Thrift/RPC学习分享
    LeetCode算法题:2. 两数相加
    计算机视觉系列 -OpenMMLab 之 MMRazor 模型轻量化瑞士军刀 蒸馏、剪枝、网络结构搜索全方向覆盖
    数据分析-Pandas数据如何图示规律
    多商户自营连锁小程序商城的作用是什么
    两天完成牛客网sql必知必会50题(附链接)
    【Python搜索算法】广度优先搜索(BFS)算法原理详解与应用,示例+代码
  • 原文地址:https://ask.csdn.net/questions/8093245