Ошибка: TypeError: Невозможно прочитать свойство 'getId' из неопределенного в React + трюфельном DApp - PullRequest
3 голосов
/ 16 мая 2019

Мой Ganche-GUI и метамаска запущены. но я получаю следующую ошибку в консоли

TypeError: Невозможно прочитать свойство 'getId' из неопределенного на App.componentDidMount (App.js: 17)

Ниже приведен мой код в коде App.js

import React, {Component} from 'react';
import logo from './logo.svg';
import './App.css';
import getWeb3 from './utils/getweb3';
import CrowdFundingContract from './contracts/CrowdFunding.json';

class App extends Component {
state = {web3: null, accounts: null, contracts: null};

componentDidMount = async () => {
try{
  const web3 = await getWeb3();

  const accounts = await web3.eth.getAccounts();

  const networkId = await web3.eth.net.getId();

  const deployedNetwork = CrowdFundingContract.networks[networkId];

  const instance = new web3.eth.Contract(CrowdFundingContract.abi, deployedNetwork && deployedNetwork.address);

  this.setState({web3, accounts, contract: instance}, this.runExample);
}
catch(error){
  alert('Failed to load web3, accounts and contract, check the console');
  console.error(error);
}
};

}

Я не поместил рендер () и функцию returnExample здесь.

Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 18 мая 2019

Вы подключились к провайдеру eth?

    const Web3 = require('web3')
    const web3 = new Web3(new Web3.providers.HttpProvider('https://mainnet.infura.io'))

Вы уверены, что используете web3 1.x.x? Поскольку ваш код выглядит хорошо, если вы используете web3 v0.x.x, попробуйте следующее:

    web3.version.getNetwork(function(err, res){
      let selectedNetwork = ""

      if (!err) {
          switch (res) {
            case "1":
              selectedNetwork = "Mainnet"
              break
            case "2":
              selectedNetwork = "Morden"
              break
            case "3":
              selectedNetwork = "Ropsten"
              break
            case "4":
              selectedNetwork = "Rinkeby"
              break
            default:
              selectedNetwork = "Unknown network = "+res
        }
        return selectedNetwork
      } else {
        console.log(err)
      }
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...