1

预期的:

运行应用程序后,用户应该"Loading Drizzle..."会在浏览器中看到一条消息,然后紧接着是"Drizzle is ready".

结果:

该应用程序一直卡住,"Loading Drizzle..."并且 chrome 控制台中出现错误:

错误

根深蒂固

在contractSaga

在采取每个

在添加合同

在实例化合同

TypeError:无法读取未定义的属性“地址”

我在这里关注本教程:https ://truffleframework.com/tutorials/getting-started-with-drizzle-and-react

我在当前部分:

替换渲染方法

render() {
  if (this.state.loading) return "Loading Drizzle...";
  return <div className="App">Drizzle is ready</div>;
}

我已经在我的应用程序中完成了该操作,并希望看到“Drizzle 已准备好”消息,但却得到了上面的错误。

这是我的仓库:https ://github.com/leongaban/truffle_drizzle_test

在此处输入图像描述

在此处输入图像描述

4

3 回答 3

3

没有将任何合约部署到您的 ganache 网络,这就是发生该错误的原因。

在文件夹的根目录中,确保truffle migratetruffle compile.

于 2018-09-21T20:41:07.347 回答
1

即使在将合约正确部署到我的 ganache 网络之后,我也遇到了同样的问题。它对我不起作用的原因是我在 Chrome 浏览器上启用了 MetaMask。我什至没有登录,但似乎 dapp 在错误的网络上寻找合同。当我使用隐身模式/完全禁用 MetaMask 打开网站时,它可以工作!

这是教程指出的,但我想很容易不认真对待:

注意:如果您已经安装了 MetaMask(或暂时禁用 MetaMask),请确保使用隐身窗口。否则,应用程序将尝试使用 MetaMask 中指定的网络,而不是 localhost:8545 下的开发网络。

于 2018-10-26T11:08:03.587 回答
0

truffle migrate将你的合约部署到你的区块链网络上,然后输出一个build/contracts/YourContract.json包含你的合约信息的文件。例如,它包含您的合约的 ABI 和部署您的合约的地址。

您的 JavaScript 可能会导入该 JSON 文件,以便获得连接到您的合同所需的信息。因此,请确保 JS 正在导入最新版本的 JSON,否则它将不知道在哪个地址找到您的合约等。

于 2018-10-04T00:36:01.997 回答