0

我在前端使用web3 库

当我使用以下文件运行我的应用程序时:

App = {
  web3Provider: null,
  contracts: {},

  init: function () {
    return App.initWeb3();
  },

  initWeb3: function () {

    // Is there an injected web3 instance?
    if (typeof web3 !== 'undefined') {
      App.web3Provider = web3.currentProvider;
    } else {
      // If no injected web3 instance is detected, fall back to Ganache
      App.web3Provider = new Web3.providers.HttpProvider('http://localhost:7545');
    }
    web3 = new Web3(App.web3Provider);

    return App.initContract();
  },

  initContract: function () {

    App.contracts.CryptoSportsToken.setProvider(App.web3Provider); // Here I get the error

    return App.bindEvents();
  },

  bindEvents: function () {
    var owner = $('#owner').val();
    var name = $('#name').val();
    var price = $('#price').val();

    console.log(owner + " " + name + " " + price)

    //createPromoPerson(address _owner, string _name, uint256 _price)
    $(document).on('click', '.btn-create', App.createPromoPerson(owner, name, price));
  },
};

$(function () {
  $(window).load(function () {
    App.init();
  });
});

我收到以下错误:

未捕获的类型错误:无法在 Object.initWeb3 (create_app.js:20) 处的 Object.initContract (create_app.js:25) 处读取未定义的属性“setProvider”,位于 create_app.js:44 处的 Object.init (create_app.js:6)在调度 (jquery.min.js:3) 在 r.handle (jquery.min.js:3)

有什么建议为什么我会在这个地方收到错误?

感谢您的回复!

4

1 回答 1

1

这不是 web3 错误。在第 25 行,你做

App.contracts.CryptoSportsToken

看看 中的contracts对象App。它是空的。这就是CryptoSportsToken错误报告的未定义的原因。

于 2018-02-03T07:20:58.667 回答