5-1. Thành phần số khối
Thành phần BlockNumber
BlockNumber1) Mã lệnh đầy đủ
import React, { Component } from 'react'
import { cav } from 'klaytn/caver'
import './BlockNumber.scss'
/**
* thành phần BlockNumber tìm nạp số khối hiện tại từng giây.(1000ms)
* số khối hiện tại có thể tìm nạp về bằng thư viện caver-js
* thư viện này tạo kết nối, giao tiếp với nút klaytn.
* cf) Nếu bạn muốn kết nối với một nút klaytn cụ thể,
* thay đổi cấu hình 'rpcURL' trong klaytn/caver.js
*/
class BlockNumber extends Component {
/**
* thành phần BlockNumber có trạng thái 'currentBlockNumber'.
*/
state = {
currentBlockNumber: '...loading',
}
/**
* phương pháp 'getBlockNumber' chạy
* 1) lấy số khối hiện tại từ nút klaytn bằng lệnh gọi 'cav.klay.getBlockNumber()'
* 2) đặt trạng thái 'currentBlockNumber' bằng giá trị lấy về từ bước 1).
*/
getBlockNumber = async () => {
const blockNumber = await cav.klay.getBlockNumber()
this.setState({ currentBlockNumber: blockNumber })
}
/**
* giá trị intervalId sẽ được gắn bằng giá trị trả về từ `setInterval`.
* intervalId sẽ được sử dụng để xóa khoảng thời gian, ngăn rò rỉ bộ nhớ.
*/
intervalId = null
/**
* Trong vòng đời 'componentDidMount', gọi phương pháp 'getBlockNumber' sau mỗi khoảng thời gian bằng nhau.
*/
componentDidMount() {
this.intervalId = setInterval(this.getBlockNumber, 1000)
}
/**
* Trong vòng đời 'componentWillUnmount', xóa khoảng thời gian
* gọi getBlockNumber mỗi 1000ms.
*/
componentWillUnmount() {
if (this.intervalId) clearInterval(this.intervalId)
}
/**
* Trong vòng đời 'render', hiển thị trạng thái 'currentBlockNumber' như dưới đây:
* <p>Số khối: {currentBlockNumber}</p>
*/
render() {
const { currentBlockNumber } = this.state
return (
<div className="BlockNumber">
<p className="BlockNumber__current">Số khối: {currentBlockNumber}</p>
</div>
)
}
}
xuất BlockNumber mặc định2) Vai trò của thành phần BlockNumber
3) Phương thức getBlockNumber chi tiết
getBlockNumber chi tiết4) Gọi getBlockNumber sau mỗi khoảng thời gian bằng nhau
getBlockNumber sau mỗi khoảng thời gian bằng nhauLast updated