TypeError:无法读取null的属性“ manager”

时间:2019-03-11 15:17:05

标签: javascript reactjs solidity

我正在使用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;"

请帮忙吗?

1 个答案:

答案 0 :(得分:0)

state中初始化constructor()对象:

class App extends Component {
  constructor(props) {
    super(props)
    this.state = {
      manager: ""
    }
  }
  async compenentDidMount(){
  ...
  ...
}