web3 dapp React项目引入 antd 对 balance 用户token信息组件进行样式改造

news2024/11/26 4:51:16

好 上文 web3 React dapp中编写balance组件从redux取出并展示用户资产
我们简单处理了用户资产的展示
那么 我们继续
先启动 ganache 环境
终端输入

ganache -d

在这里插入图片描述
然后 打开我们的项目 将合约发布到区块链上

truffle migrate --reset

在这里插入图片描述
然后 我们启动项目 确认一切正常 还原到上文结束时的样子即可
在这里插入图片描述
然后 我们前端项目开发 现在不用个UI框架 都会被别人看不起的
这里 react 我们当然还是选择大家比较熟悉的antd组件库
在这里插入图片描述
然后 我们终端输入

npm i antd --save

引入一下依赖
在这里插入图片描述
然后 我们来测试一下 看看有没有进来
这里 我们搞个按钮的代码来试一下
在这里插入图片描述
这里 我们直接随便找个组件 导入一个 button按钮 看看样式是否能进来就好了
在这里插入图片描述
运行代码
这里 我们的代码就成功进来了 说明 antd是导入成功的
在这里插入图片描述
然后 antd中 有一个统计数值的组件 还是做的比较好看的
我们可以直接整个先拿过来用
在这里插入图片描述
将 用户资产组件 代码直接更改如下

import React from 'react';
import { useSelector } from "react-redux";
import { ArrowDownOutlined, ArrowUpOutlined } from '@ant-design/icons';
import { Card, Col, Row, Statistic } from 'antd';

function convert(unit) {
  return window.WebData ? window.WebData.web3.utils.fromWei(unit, "ether") : ""
}

export default function Balance() {
  const {
    TokenWallet,
    TokenExchange,
    EtherWallet,
    EtherExchange
  } = useSelector((state) => state.balance)
  return (
    <div>
      <Row gutter={16}>
        <Col span={12}>
          <Card bordered={false}>
            <Statistic
              title="Active"
              value={11.28}
              precision={2}
              valueStyle={{ color: '#3f8600' }}
              prefix={<ArrowUpOutlined />}
              suffix="%"
            />
          </Card>
        </Col>
        <Col span={12}>
          <Card bordered={false}>
            <Statistic
              title="Idle"
              value={9.3}
              precision={2}
              valueStyle={{ color: '#cf1322' }}
              prefix={<ArrowDownOutlined />}
              suffix="%"
            />
          </Card>
        </Col>
      </Row>
      <h3>个人grToken: {convert(TokenWallet)}</h3>
      <h3>个人交易所grToken: {convert(TokenExchange)}</h3>
      <h3>个人ETH: {convert(EtherWallet)}</h3>
      <h3>个人交易所ETH: {convert(EtherExchange)}</h3>
    </div>
  );
}

这里 我直接将他这个统计组件的代码都考了过来运行之后
在这里插入图片描述可以看到 上面统计数值的组件 看着和官方文档也差不多 那么 我们再来小改造一下

案例上 Row直接上会有一个gutter属性 是用来控制边距的 我们不要他
在这里插入图片描述
但这里 大家可能会发现 左侧这边 有点贴到边角了
在这里插入图片描述
这里的话 我们直接找到 src下的 view 下的 index.jsx 文件 在根组件位置 直接加一个 内边距
在这里插入图片描述
这样 我们上下左右 就都会有一定的距离了 就不存在这个贴到边上的问题了
在这里插入图片描述
然后呢 我们再次回到资产组件 这里 我们希望一行展示 四个 我们就将Col组件的 span 通通改成 6
在这里插入图片描述
这样我们再运行起来 他就是一行展示两个
在这里插入图片描述
然后 这个Card 也是 antd提供给我们的一个组件
在这里插入图片描述
这里 我们在文档中找到这个 Card
文档上上 它叫 卡片组件 然后上面有一个hoverable属性 用来控制 当鼠标经过它时可以浮起
在这里插入图片描述
然后 我们设置一下 将 Card 组件的hoverable都设为 true 开启这个鼠标经过浮起的效果
在这里插入图片描述
这样 我们鼠标经过就成立这样一个效果
在这里插入图片描述
然后 我们直接将 src下 components 下的 balance.jsx 代码编写如下

import React from 'react';
import { useSelector } from "react-redux";
import { Card, Col, Row, Statistic } from 'antd';

function convert(unit) {
  return window.WebData ? window.WebData.web3.utils.fromWei(unit, "ether") : ""
}

export default function Balance() {
  const {
    TokenWallet,
    TokenExchange,
    EtherWallet,
    EtherExchange
  } = useSelector((state) => state.balance)
  return (
    <div>
      <Row>
        <Col span={6}>
          <Card
            bordered={false}
            hoverable = {true}
          >
            <Statistic
              title="个人grToken"
              value={convert(TokenWallet)}
              precision={3}
              valueStyle={{ color: '#3f8600' }}
            />
          </Card>
        </Col>
        <Col span={6}>
          <Card
            bordered={false}
            hoverable = {true}
          >
            <Statistic
              title="个人交易所grToken"
              value={convert(TokenExchange)}
              precision={3}
              valueStyle={{ color: '#0000FF' }}
            />
          </Card>
        </Col>
        <Col span={6}>
          <Card
            bordered={false}
            hoverable = {true}
          >
            <Statistic
              title="个人ETH"
              value={convert(EtherWallet)}
              precision={3}
              valueStyle={{ color: '#FF8C00' }}
            />
          </Card>
        </Col>
        <Col span={6}>
          <Card
            bordered={false}
            hoverable = {true}
          >
            <Statistic
              title="个人交易所ETH"
              value={convert(EtherExchange)}
              precision={3}
              valueStyle={{ color: '#FF00FF' }}
            />
          </Card>
        </Col>
      </Row>
    </div>
  );
}

这里 我们设置了Statistic 组件 title 就是 要统计的文本 然后 value 数值 precision 设置 后面保留几位小数 这里 我们选择3 然后 颜色 通过valueStyle中的color设置

最终运行结果如下
在这里插入图片描述
那么 下一文 我们开始处理 订单组件

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

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

相关文章

wangeditor富文本编辑器的使用(vue)

官网 官方demo 参考 安装 yarn add wangeditor/editor yarn add wangeditor/editor-for-vue 封装的富文本组件 <template><div style"border: 1px solid #ccc"><Toolbarstyle"border-bottom: 1px solid #ccc":editor"editorRef"…

P02项目(学习)

★ P02项目 项目描述&#xff1a;安全操作项目旨在提高医疗设备的安全性&#xff0c;特别是在医生离开操作屏幕时&#xff0c;以减少非授权人员的误操作风险。为实现这一目标&#xff0c;我们采用多层次的保护措施&#xff0c;包括人脸识别、姿势检测以及二维码识别等技术。这些…

工程压缩与解压缩

很多工程师在完成一个电气工程后&#xff0c;会遇到一些问题&#xff0c;例如&#xff1a;在SOLIDWORKSElectrical 中如何把做好的工程发送给别的工程师&#xff0c;或者更换了电脑如何把旧电脑的工程转移到新电脑 上&#xff1b;有时候&#xff0c;工程师也有可能会遇到解压工…

Redis概述和安装

&#x1f388;个人公众号:&#x1f388; :✨✨✨ 可为编程✨ &#x1f35f;&#x1f35f; &#x1f511;个人信条:&#x1f511; 知足知不足 有为有不为 为与不为皆为可为&#x1f335; &#x1f349;本篇简介:&#x1f349; 本篇详细阐述了Redis概述和安装&#xff0c;如有出入…

经典OJ题:找环节点——代码解析

题目&#xff1a; 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测…

【每日一题】统计范围内的元音字符串数

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;遍历 其他语言python3 写在最后 Tag 【遍历】【数组】【2023-11-07】 题目来源 2586. 统计范围内的元音字符串数 题目解读 统计范围内的元音字符串数。 解题思路 方法一&#xff1a;遍历 遍历下标在 [left, right]…

用循环结构程序自动化计算——计数循环

用循环结构程序自动化计算——计数循环 低阶目标&#xff1a; 利用for循环结构来完成已知次数的自动化处理&#xff0c;掌握计数循环结构应用方法 高阶目标&#xff1a; 学会利用for循环解决生活中的实际问题 用循环结构程序自动化计算——计数循环 用循环结构程序自动化计算…

Leetcode48旋转图像

思路&#xff1a;找规律 方法一、一般辅助数组解法 行列转换&#xff0c;第一行变到第三列&#xff0c;第二行变到第二列&#xff0c;第三行变到第一列 matrix[row][col] matrix[col][n-row-1] 然后复制回原数组 class Solution {public void rotate(int[][] matrix) {in…

第十二章 Python正则表达式

系列文章目录 第一章 Python 基础知识 第二章 python 字符串处理 第三章 python 数据类型 第四章 python 运算符与流程控制 第五章 python 文件操作 第六章 python 函数 第七章 python 常用内建函数 第八章 python 类(面向对象编程) 第九章 python 异常处理 第十章 python 自定…

独立键盘接口设计(Keil+Proteus)

前言 软件的操作参考这篇博客。 LED数码管的静态显示与动态显示&#xff08;KeilProteus&#xff09;-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/134101256?spm1001.2014.3001.5501实验&#xff1a;用4个独立按键控制8个LED指示灯。 按下k1键&#x…

VB.NET—DataGridView控件教程详解

目录 前言: 过程: 第一步: 第二步: 第三步: 第四步: 第五步&#xff1a; 番外篇: 总结: 前言: DataGridView是.NET FormK中的一个Windows窗体控件&#xff0c;它提供了一个可视化的表格控件&#xff0c;允许用户以表格形式显示和编辑数据。它通常用于显示和编辑数据库…

50基于matlab的传统滤波、Butterworth滤波、FIR、移动平均滤波、中值滤波、现代滤波、维纳滤波、自适应滤波、小波变换

基于matlab的传统滤波、Butterworth滤波、FIR、移动平均滤波、中值滤波、现代滤波、维纳滤波、自适应滤波、小波变换&#xff0c;七种滤波方法&#xff0c;可替换自己的数据进行滤波&#xff0c;程序已调通&#xff0c;可直接运行。 50matlabButterworth滤波 (xiaohongshu.com)…

AI创作系统ChatGPT商业运营系统源码+支持GPT4/支持ai绘画

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

关于 HTML 的一切:初学者指南

HTML 代表超文本标记语言&#xff0c;是用于创建网页和 Web 应用程序的标准语言。 本指南将全面介绍 HTML&#xff0c;涵盖从基本语法和语义到更高级功能的所有内容。 我的目标是用简单的术语解释 HTML&#xff0c;以便即使没有编码经验的人也能学习如何使用 HTML 构建网页。…

Ps:色彩范围

Ps菜单&#xff1a;选择/色彩范围 Select/Color Range 色彩范围 Color Range是一个功能强大选择命令&#xff0c;不仅可以基于颜色进行选择&#xff0c;而且可以基于影调进行选择。不仅可以用来检测人脸选择肤色&#xff0c;也可用来选择超出印刷色域范围的区域。 在图层蒙版的…

【人工智能专栏】(5)知识表示方法的习题及其解答

目录 1. 简述2. 题目3. 解答4. 文章传送门 1. 简述 前面几篇文章&#xff0c;我们讲述了人工智能中知识表示的一些常用方法&#xff0c;下面将给出一些习题供大家练习&#xff0c;看看是否完全掌握了相关的知识。 2. 题目 什么是知识&#xff1f;有哪几类分类方法&#xff1f…

YOLOv5 7.0 网络结构解读

前言 YOLOV5是一系列在COCO数据集上预训练的目标检测架构和模型&#xff0c;结合了在数千个小时的研究和开发中获得的经验教训和最佳实践。本文主要以yolov5s为例介绍YOLOV5-v7.0版本的网络架构及初始化超参数。 一.YOLOV5s网络结构图 网络结构主要包含以下部分&#xff1a;…

Qwt QwtKnob绘制旋钮

1.简介 QwtKnob是Qwt库中的一个类&#xff0c;用于绘制一个旋钮样式的仪表盘。它继承QwtAbstractSlider类&#xff0c;提供了一些额外的功能和样式&#xff0c;用于旋转和选择值。 以下是类继承关系&#xff1a; 2.常用方法 旋钮&#xff08;Knob&#xff09;相关的属性和方法…

UseGalaxy.cn生信云|生物信息必备技能-出版级别的circos圈图绘制

2023-11-06&#xff0c;Galaxy生信云平台 UseGalaxy.cn 新增circos圈图绘制工具。 Graph/Display Data Circos visualizes data in a circular layout (Galaxy Version 0.69.8galaxy12) Circos&#xff08;Krzywinski等人&#xff0c;2009年&#xff09;是一个用于以圆形布局可…

lv10 嵌入式开发 在线英英词典

1 有道词典流程分析及本项目功能描述 1.1 抽取项目原理分析 本项目功能描述 用户注册和登录验证服务器端将用户信息和历史记录保存在数据库中。客户端输入用户名和密码&#xff0c;服务器端在数据库中查找、匹配&#xff0c;返回结果单词在线翻译根据客户端输入的单词在字典文…