web3通过antd 在React dapp中构建订单组件基本结构

news2024/12/29 10:54:56

上文web3 dapp React项目引入 antd 对 balance 用户token信息组件进行样式改造
中 我们导入 antd组件 算是比较完整的编写了用户资产组件
那么 今天开始 我们就要说订单组件了 这个就会比之前的复杂很多
我们还是先开环境
ganache 终端执行

ganache -d

在这里插入图片描述
然后 将合约 发布到区块链上 项目终端执行

truffle migrate --reset

在这里插入图片描述然后我们执行一下我们之前写的测试文件 向交易所转入一些ETH和token

truffle exec .\scripts\test.js

在这里插入图片描述
然后 登录 MetaMask
在这里插入图片描述
最后 运行我们的 react dapp项目
在这里插入图片描述
订单组件 不是一次性能讲完的 因为确实比较复杂 本文 我们先将整个订单组件的结构搭起来

这里 我们打算分三部分展示 首先是
所有被交易完成的订单 这个所有人都可以看到
然后是 当前用户创建的订单 这里只有当前自己创建的才能看到 这里就要有取消订单的操作
最后是别人正在执行的订单 我们也可以操作交易
在这里插入图片描述
因为涉及到不同区块操作 所以 这里 我们要用redux来存储
所以 这篇文章 我们只搭建界面结构 下一文 我们再来处理数据层的逻辑

这里 我还是打算利用卡片式的展示方式
我们找到 src下 components 下的 Order.jsx 组件 编写代码如下

import React from 'react';
import { Card, Col, Row } from 'antd';
export default function Order() {

  return (
    <div style = {{marginTop:'10px'}}>
      <Row>
         <Col span={8}>
          <Card title="已完成" bordered={false} style = {{ margin: '10px' }}>
            <p>Card content</p>
            <p>Card content</p>
            <p>Card content</p>
          </Card>
         </Col>
         <Col span={8}>
          <Card title="我创建的" bordered={false} style = {{ margin: '10px' }}>
            <p>Card content</p>
            <p>Card content</p>
            <p>Card content</p>
          </Card>
         </Col>
         <Col span={8}>
          <Card title="其他交易中订单" bordered={false} style = {{ margin: '10px' }}>
            <p>Card content</p>
            <p>Card content</p>
            <p>Card content</p>
          </Card>
         </Col>
      </Row>
    </div>
  );
}

这里 我们还是用的 antd的 Col 卡片
然后title是我们标题 里面就是内容
因为这是 24三格 模式 就是 span 达到 24就会盛满整个屏幕 所以我们三个 每个就是 8
三个正好是整个屏幕
我们运行代码
在这里插入图片描述
整个的界面效果就出来了

但是 这里 数据的展示 p 显然满足不了我们
我还是希望用表格组件

我们打开antd官方文档 找表格组件
在这里插入图片描述
这里 我们先要从antd 引入Table组件 然后 案例中 columns 是表格的列名称 dataSource则是每行的数据 我懒得写了 直接复制过来
在这里插入图片描述
最后 将表格 替换掉原来p标签的位置
在这里插入图片描述
运行结果如下
在这里插入图片描述
这个表格组件要特殊说一下 他是 根据dataIndex匹配的
参考代码如下

import React from 'react';
import { Card, Col, Row ,Table } from 'antd';

export default function Order() {
  const dataSource = [
    {
      key: '1',
      name: '胡彦斌',
      age: 32,
      address: '西湖区湖底公园1号',
    },
    {
      key: '2',
      name: '胡彦祖',
      age: 42,
      address: '西湖区湖底公园1号',
    },
  ];
  
  const columns = [
    {
      title: '姓名',
      dataIndex: 'name',
      key: 'name',
    },
    {
      title: '年龄',
      dataIndex: 'age',
      key: 'age',
    },
    {
      title: '住址',
      dataIndex: 'address',
      key: 'address',
    },
  ];
  
  return (
    <div style = {{marginTop:'10px'}}>
      <Row>
         <Col span={8}>
          <Card title="已完成" bordered={false} style = {{ margin: '10px' }}>
            <Table dataSource={dataSource} columns={columns} />
          </Card>
         </Col>
         <Col span={8}>
          <Card title="我创建的" bordered={false} style = {{ margin: '10px' }}>
            <p>Card content</p>
            <p>Card content</p>
            <p>Card content</p>
          </Card>
         </Col>
         <Col span={8}>
          <Card title="其他交易中订单" bordered={false} style = {{ margin: '10px' }}>
            <p>Card content</p>
            <p>Card content</p>
            <p>Card content</p>
          </Card>
         </Col>
      </Row>
    </div>
  );
}

这里 我们表头 设置 title名字为 姓名 设dataIndex为 name
这样后面每一行的namp都会自动匹配到这一列上
在这里插入图片描述
就是这样一个效果
在这里插入图片描述
这里 我们改一下表头的字段名 我们这里订单只需要展示 创建时间 ETH和GrToken 告诉他什么时候创建的 然后徐多少 对多少 token 就好了
在这里插入图片描述
然后 我们将其他几个都换成 Table组件
在这里插入图片描述
这样 我们项目就像个样子了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1181227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django+Celery框架自动化定时任务开发

本章介绍使用DjCelery即DjangoCelery框架开发定时任务功能&#xff0c;在Autotestplat平台上实现单一接口自动化测试脚本、业务场景接口自动化测试脚本、App自动化测试脚本、Web自动化测试脚本等任务的定时执行、调度、管理等&#xff0c;从而取代Jenkins上的定时执行脚本和发送…

趋动云云端部署ChatGLM3-6B

趋动云端部署ChatGLM3-6B 文章目录 趋动云端部署ChatGLM3-6B1.项目创建2.模型部署3.总结参考 本部分主要内容&#xff1a;1.熟悉趋动云项目创建流程2.动手部署ChatGLM3-6B模型 1.项目创建 首先是趋动云的项目的创建&#xff0c;其主要以项目为载体&#xff0c;一个项目内可以进…

深度学习连接

全连接批量归一化 目的是&#xff1a;通过归一化&#xff0c;让所有的 x i x_i xi​具有一样的分布&#xff0c;学习率是一个值&#xff0c;每个参数 w i w_i wi​梯度的值大致相当实现是&#xff1a;实际上是在全连接中增加了两个节点 γ \gamma γ, β \beta β

设置区块链节点输出等级为警告级,并把日志存储阈值位100MB并验证;

题目 获取指定区块链节点输出等级为警告级&#xff0c;并设置日志存储阈值位100MB并验证&#xff1b; 操作步骤 1.切换目录 cd nodes/127.0.0.1/node0 2.打开配置文件并修改 vim config.ini warn&#xff1a;警告

拒绝一次性芯片,新技术:无线升级芯片

其便捷性和兼容性拥有4年经验的职场人都上手试用&#xff01; 就算把产品寄到国外出问题了或需要升级 2.4G射频芯片帮您实现Mcu Ota无线升级产品0.3就能换一次救命的机会&#xff0c;相当于给产品买个保险&#xff01; 问宇凡微拿了规格书和样品&#xff0c;经过几天的摸索研…

怎么更改文件创建日期?

怎么更改文件创建日期&#xff1f;如今科技发展日新月异&#xff0c;人们对于信息和数据的依赖程度日益加深。在这个高度信息化的时代&#xff0c;文件处理已经成为数字化办公不可或缺的环节。无论是个人还是企业&#xff0c;都需要通过数字化的方式来处理和管理大量的文档、表…

聊聊低代码技术

目录 一、什么是低代码开发&#xff1f; 二、为什么需要低代码开发&#xff0c;具备哪些优势&#xff1f; 三、低代码开发在实际工作中的作用 四、是不是有了低代码&#xff0c;就能不关注“质量”呢&#xff1f; 五、引迈旗下低代码开发平台--JNPF初体验 一、什么是低代码开发…

大厂硬性要求的性能优化,如何做到极致?可从7个方向切入

关于Android开发中的性能优化也是老生常谈的技术了。在许多大厂的招聘条件中就必须要求这项技术&#xff1b;因为Android 开发越来越规范&#xff0c; 国内工程师的素质&#xff0c;以及用户对产品的要求也越来越高。所以这也间接导致我们对研发项目的质量要求到了近乎苛刻的地…

『MySQL快速上手』-③-库的操作

文章目录 1.创建数据库2.创建数据库案例3.字符集和校验规则3.2 校验规则对数据库的影响3.2.1 进行查询3.2.2 进行排序 4.字符集和检验规则的作用5.操纵数据库5.1 查看数据库5.2 显示创建语句5.3 修改数据库5.4 数据库删除 6.备份与恢复6.1 备份6.2 还原6.3 注意事项 7.查看数据…

2023年最热门的五大编程技术趋势

2023年最热门的五大编程技术趋势 摘要&#xff1a;本文将介绍2023年最热门的五大编程技术趋势&#xff0c;包括人工智能、区块链、WebAssembly、5G和边缘计算以及自动化。我们将详细讨论这些趋势的当前状态、未来展望以及如何利用这些技术来提高您的编程技能。 一、前言 随着…

【NI-DAQmx入门】数据流盘

1.NI-DAQmx高速数据流盘 1.1什么是TDMS格式 TDMS文件格式是NI推荐易于交换、固有结构化、具有高速流传输能力的文件格式&#xff0c;用于将基于时间的测量数据保存到磁盘&#xff0c;以实现高性能、可用性和复用性。借助NI-DAQmx驱动&#xff0c;可以实现将数据快速传输到磁盘…

【vue3】引入高德地图并初始化

npm安装amap/amap-jsapi-loader包 <script setup> import AMapLoader from amap/amap-jsapi-loader; /*在Vue3中使用时,需要引入Vue3中的shallowRef方法 (使用shallowRef进行非深度监听, 因为在Vue3中所使用的Proxy拦截操作会改变JSAPI原生对象 否则会出现问题,建议JSAP…

学习笔记:利用CANOE Panel和CAPL脚本模拟主节点发送LIN通信指令

前一篇文章已经对CANOE如何模拟主节点和从节点进行LIN通信做了简单的记录&#xff0c;修改主节点发送的指令需要修改LIN ISC模块里的Frames帧对应的signal。这样改起来比较麻烦且不直观&#xff0c;幸好CANOE提供了Panel designer这样的工具&#xff0c;我们可以利用它设计自己…

谷歌浏览器配置允许跨域

1、在谷歌浏览器导航栏搜索chrome://flags 2、搜索Block insecure private network requests 3、修改状态

代码随想录打卡第六十三天|84.柱状图中最大的矩形

84.柱状图中最大的矩形 题目&#xff1a;给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 提示&#xff1a; 1 < heights.length <105 0 < h…

C语言:对于宏的一些概念及技巧

一、前言 宏在C语言中是一段有名称的代码段&#xff0c;在程序编译过程中&#xff0c;会将宏的内容被这段代码进行替换&#xff0c;常常用于定义一些常量、函数、代码块等&#xff0c;由于近年来发现许多公司进行面试时对于宏的面试题尤为多&#xff0c;故本文将对C语言中的宏的…

基于springboot实现招生平台管理系统项目【项目源码+论文说明】

基于springboot实现招生管理系统演示 摘要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括招生管理系统的网络应用&#xff0c;在外国招生管理系统已经是很普遍的方式&#xff0c;不过国内的管理网站可能还处于起步阶段。招…

使用Keepalived实现双机热备,实现服务高可用

安装&#xff08;所有节点&#xff09; yum -y install keepalived修改配置 vi /etc/keepalived/keepalived.conf :set nu //显示行号 :35 dG // 删除35行以后的所有行ip a将master1虚拟机挂起&#xff0c;再次执行ip a 看vip是否漂移到另一台虚拟机worker1 漂移了&…

一图搞懂傅里叶变换(FT)、DTFT、DFS和DFT之间的关系

自然界中的信号都是模拟信号&#xff0c;计算机无法处理&#xff0c;因此我们会基于奈奎斯特定理对模拟信号采样得到数字信号。 但是我们发现&#xff0c;即便是经过采样&#xff0c;在时域上得到了数字信号&#xff0c;而在频域上还是连续信号。 因此我们可以在时域中选取N点…

Softing TDX——设计模板

| 高质量的设计模板——减少开发诊断仪所需的工作量 现今&#xff0c;用户对诊断仪的界面和操作理念提出了更高的要求。一个直观的用户界面既能减少用户熟悉诊断仪的时间&#xff0c;又能减少在日常工作中进行诊断任务的时间。然而&#xff0c;创建一个精巧又独立于平台的诊断…