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

问题描述 投票:0回答:1

我正在使用混音测试以太坊智能合约。使用注入的web3。智能合约的部署成功。然后我使用ABI和部署的智能合约的地址开发简单的前端使用react,但是这个错误出现TypeError:无法读取属性'manager'的null。

聪明的合同

"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;"

有什么帮助吗?

javascript reactjs solidity
1个回答
0
投票

state初始化你的constructor()对象:

class App extends Component {
  constructor(props) {
    super(props)
    this.state = {
      manager: ""
    }
  }
  async compenentDidMount(){
  ...
  ...
}
© www.soinside.com 2019 - 2024. All rights reserved.