如何修复Web3中的'无法读取未定义的属性'应用'的错误

时间:2019-05-21 13:34:13

标签: javascript web3 truffle metamask

我是dapp的新手,并试图跟随iwaldman构建ipfs-image-dapp。这是仓库:https://github.com/iwaldman/ipfs-image-dapp

这是一些代码。


import contract from 'truffle-contract'

import web3 from '../utils/web3'
import ImageRegisterContractArtifact from '../../build/contracts/ImageRegister.json'
import { WEB3_CONNECTED, WEB3_ERROR, WEB3_ACCOUNT_CHANGE } from './types'
import { getImages } from './imageActions'

export const web3Connect = () => async (dispatch, getState) => {
  try {
    // contract ABI and set provider
    const imageRegisterContract = contract(ImageRegisterContractArtifact)
    imageRegisterContract.setProvider(web3.currentProvider)

    // deployed contract
    const contractInstance = await imageRegisterContract.deployed()

但是运行yarn start时出现错误无法读取未定义的属性“ apply”。我已经尝试过网络给出的方法,例如

    if (typeof imageRegisterContract.currentProvider.sendAsync !== "function") {
       imageRegisterContract.currentProvider.sendAsync = function() {
         return imageRegisterContract.currentProvider.send.apply(
            imageRegisterContract.currentProvider,
            arguments
    );
  };
}

但是它给出了另一个错误(未承诺)DOMException:无法在“窗口”上执行“ postMessage”。

我一定做错了。我正在使用最新的metamask和ganache v2.0.1。我已经关闭了metamask的隐私模式。有人可以给我一些建议吗?谢谢。

请原谅我的英语不好。

0 个答案:

没有答案