我正在使用remix测试以太坊智能合约。 我正在使用注入的web3。 智能合约的部署成功。然后我使用ABI和已部署的智能合约的地址使用react开发简单的前端,但是出现此错误TypeError:无法读取null的属性“ manager”。
智能合约
"pragma solidity ^0.4.17;
contract dapp {
address public manager;
function dapp() public {
manager = msg.sender;
}
}"
App.js
"import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import web3 from './web3';
import dapp from './dapp';
class App extends Component {
async compenentDidMount(){
const manager = await dapp.methods.manager().call();
this.setState({ manager });
}
render() {
return (
<div>
<p> The manager is {this.state.manager} </p>
</div>
);
}
}
export default App;"
web3.js
"import Web3 from 'web3';
const web3 = new Web3(window.web3.currentProvider);
export default web3;"
请帮忙吗?
答案 0 :(得分:0)
在state
中初始化constructor()
对象:
class App extends Component {
constructor(props) {
super(props)
this.state = {
manager: ""
}
}
async compenentDidMount(){
...
...
}