javascript - Angular App 中的“smartContract.at 不是函数”
问题描述
在我的 Angular Dapp 中,第一个代码中的错误是“smartContract.at 不是函数”。
settingMap(hashRoot : string) {
var smartContract = new window.web3.eth.Contract([contractAbi])
var contract = smartContract.at(contractAddress)
var owner = smartContract.owner
console.log(owner)
但是如果我这样写代码:
settingMap(hashRoot : string) {
var smartContract = new window.web3.eth.Contract([contractAbi],contractAddress)
var owner = smartContract.owner
console.log(owner)
console.log 打印未定义。我该如何解决这个问题?我尝试了很多方法,甚至更改了代码行
"var smartContract = window.web3.eth.contract([contractAbi])"
在
"var smartContract = new window.web3.eth.Contract([contractAbi])"
解决方案
如果您使用的是web3
version 1.x.x
,则合约实例的机制将更改如下所示:
var smartContract = new web3.eth.Contract(contractAbi, contractAddress);
如果不需要挖掘公共方法/变量,您可以调用它们,如下所示:
await smartContract.methods.owner().call();
推荐阅读
- javascript - 使用 Three.js 创建相对于视口大小的 BoxGeometry 16x16 网格
- c# - 如何在 Intellisense 和 DocFx 的 XML 注释中查看 cref 中的内容?
- swift - validateMenuItem 不为每个菜单项调用
- python - 如何在 3 维中实现三次样条插值?
- reactjs - Graphql onCreate Subscription 多次触发
- rdlc - Visual Studio 2015 RDLC 表格单元格中的文本在预览中看起来很好,但在打印时溢出
- c# - 如何同时运行 SqlDataReader 和 SqlDataAdapter?
- node.js - 从网络服务器向游戏服务器发送请求时出错
- c# - 如何为 await _propertyRepository.UnitOfWork.SaveEntitiesAsync() 创建 xUnit 测试用例?
- python - 如何在一个简单的 wsgi 应用程序中响应 ajax?