271-react合约交互

14 篇文章 1 订阅
3 篇文章 0 订阅








react合约交互







我们创建三个文件夹,对js文件进行一个管理
1.display	
	display.js
2.eth
	interaction.js
	loadInstance.js
3.utils	
	getWeb3.js




首先,我们把web3分离到getWeb3.js里面

getWeb3.js文件
//web3
let Web3 = require('web3')
let web3 = new Web3('http://127.0.0.1:7545')
console.log(web3.version)

module.exports = web3

这样就导出了
然后我们在其他文件导入就行了

let web3 = require('./utils/getWeb3')





然后我们把一些值做一个简单的展示

import React, {Component} from 'react';

let lotteryInstance = require('./eth/loadInstance')

class App extends Component {

    //react状态变量,可以负责类内的
    state = {
        manager: '',
        winner: '',
        players: [],
        round: 0,
    }

    //生命周期函数
    async componentWillMount() {

        let manager = await lotteryInstance.methods.manager().call()
        let winner = await lotteryInstance.methods.winner().call()
        let players = await lotteryInstance.methods.getPlayers().call()
        let round = await lotteryInstance.methods.round().call()


        //给状态变量赋值
        this.setState({
            manager: manager,
            winner: winner,
            players: players,
            round: round,
        })

    }

    //render渲染
    render() {
        return (
            <div>
                <p>hello world</p>
                <p>你好 世界</p>
                <p>manager: {this.state.manager}</p>
                <p>winner: {this.state.winner}</p>
                <p>players: {this.state.players}</p>
                <p>round: {this.state.round}</p>
            </div>
        );
    }
}

export default App;







我们需要修改一下web3
打开getWeb3.js文件
let Web3 = require('web3')
let provider = window.web3.currentProvider
let web3 = new Web3(provider)

module.exports=web3






然后我们增加一下按钮逻辑
render(){

let {manager,winner,round,balance,playerCount} = this.state

return(
<div>
	<ButtonExampleAnimated
	play={this.play}
	/>
</div>
)

}


然后我们在按钮上添加事件
<Button onClick={props.play}>
</Button>







 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装solidity编译器可以按照以下步骤进行操作: 1. 安装web3,这是与以太坊合约交互的JS版本库。使用命令sudo npm install web3 --save进行安装。 2. 安装solc,这是solidity的编译器。使用命令sudo npm install solc --save进行安装。 3. 安装mocha,这是一个测试框架。使用命令sudo npm install mocha --save进行安装。 4. 安装ganache-cli,这是一个虚拟的测试环境。使用命令sudo npm install ganache-cli --save进行安装。 5. 安装semantic-ui-react和semantic-ui-css,这两个是react库,可以快速搭建界面。使用命令sudo npm install semantic-ui-react --save和sudo npm install semantic-ui-css --save进行安装。 6. 安装truffle-hdwallet-provider,用于部署到Ropsten或者主网上。请注意,安装0.0.3版本。使用命令sudo npm install truffle-hdwallet-provider@0.0.3 --save进行安装。 7. 安装ipfs-api,这是ipfs的库,用于存储。使用命令sudo npm install ipfs-api --save进行安装。 安装成功后,会收到以下提示信息: Downloading... Unpacking... Setting up... Unbox successful. Sweet! Commands: Compile: truffle compile Migrate: truffle migrate Test contracts: truffle test Test dapp: cd client && npm test Run dev server: cd client && npm run start Build for production: cd client && npm run build 根据这些提示信息,您可以使用不同的命令编译、迁移、测试合约,并运行开发服务器或构建生产版本的应用程序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [solidity环境安装](https://blog.csdn.net/qq_30505673/article/details/84203376)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值