Ошибка типа: не удается прочитать свойство 'manager' с нулевым значением - PullRequest
0 голосов
/ 11 марта 2019

Я тестирую умный контракт ethereum с использованием remix. Использую закачанный web3. Развертывание умного контракта выполнено успешно. затем я использую ABI и адрес развернутого интеллектуального контракта для разработки простого внешнего интерфейса, использующего реагирование, но появляется эта ошибка. Ошибка: Не удается прочитать свойство '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 голосов
/ 11 марта 2019

Инициализируйте ваш state объект в constructor():

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