首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:在地址payable[]存储参考文件中的依赖于参数的查找之后,找不到成员"push“或不可见

TypeError:在地址payable[]存储参考文件中的依赖于参数的查找之后,找不到成员"push“或不可见
EN

Ethereum用户
提问于 2021-12-27 15:22:25
回答 1查看 579关注 0票数 1

当我将新创建的契约地址推入contracts[]数组时,出现了上述错误。我哪里出问题了?任何帮助都将不胜感激。

代码语言:javascript
复制
pragma solidity ^0.8.0;

contract Bakery {

  // index of created contracts

  address[] public contracts;
  Cookie public cookieContract;

  function getContractCount() 
    public
    
    returns(uint contractCount)
  {
    // return contracts.length;
  }

  // deploy a new contract

  function newCookie(string memory _name)
    public
    returns(Cookie newContract)
  {
    newContract = new Cookie(_name);
    contracts.push(newContract);   ///**Line Having Error***//////
    return newContract;
  }

  function getCookieName (Cookie _cookieContract) public returns(string memory name) {
      cookieContract = _cookieContract;
      string memory n =  cookieContract.name();
      return n;
  }
}


contract Cookie {

    //name
    string public name;

     constructor (string memory _name) public{
        name = _name;
    }

  // suppose the deployed contract has a purpose

  function getFlavor()
    public
    pure
    returns (string memory flavor)
  {
    return "mmm ... chocolate chip";
  }    
}```
EN

回答 1

Ethereum用户

回答已采纳

发布于 2021-12-29 22:27:44

问题是contracts被声明为

代码语言:javascript
复制
address[] public contracts;

所以它只接受地址。

您可以通过将newContract转换为地址来修复它。

代码语言:javascript
复制
function newCookie(string memory _name)
  public
  returns(Cookie newContract)
{
  newContract = new Cookie(_name);
  contracts.push(address(newContract));
  return newContract;
}
票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/117402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档