首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Solidity :错误编码参数:错误:无效的BigNumber字符串

Solidity :错误编码参数:错误:无效的BigNumber字符串
EN

Ethereum用户
提问于 2021-12-21 14:22:41
回答 2查看 4.2K关注 0票数 3

我刚开始通过观看youtube视频(https://www.youtube.com/watch?v=M576WGiDBdQ)来学习稳固。这是为什么我总是有一个无效的论点?重复的问题,但我不能用本文的答案来解决这个问题。我没有足够的声誉发表评论。

整个代码如下所示(它在视频上工作得很好)

代码语言:javascript
运行
复制
pragma solidity ^0.6.0;

contract SimpleStorage {
    
    // This will get initialized to 0!
    uint256 favoriteNumber;
    bool favoriteBool;

    struct People {
        uint256 favoriteNumber;
        string name;
    }
    
    People[] public people;
    mapping(string => uint256) public nameToFavoriteNumber;

    function store(uint256 _favoriteNumber) public {
        favoriteNumber = _favoriteNumber;
    }

    // view, pure
    function retrieve() public view returns(uint256) {
        favoriteNumber + favoriteNumber;
    }

    function addPerson(string memory _name, uint256 _favoriteNumber) public{    
        people.push(People(_favoriteNumber, _name));
        nameToFavoriteNumber[_name] = _favoriteNumber;
    }
    
}

其他特性没有错误,但是访问'people‘会给我一个错误

调用SimpleStorage.people错误:错误编码参数:错误:无效BigNumber字符串(argument=“值”value=“code=INVALID_ARGUMENT version=bignumber/5.5.0)

kassé建议在该条(为什么我总是有一个无效的论点?)

当您在人员变量上部署put 0并在您可以添加de addPerson函数之后单击它时。另外,如果你想添加第二个人,放1给人,然后再加一个

我尝试修改代码,如下所示:

代码语言:javascript
运行
复制
People[0] public people;

代码语言:javascript
运行
复制
People[1] public people;

它给了我下面的信息

代码语言:javascript
运行
复制
contracts/SimpleStorage.sol:12:12: TypeError: Array with zero length specified.

代码语言:javascript
运行
复制
contracts/SimpleStorage.sol:23:9: TypeError: Member "push" not found or not visible after
argument-dependent lookup in struct SimpleStorage.People storage ref[1] storage ref.

如果有其他建议,请告诉我。

EN

回答 2

Ethereum用户

发布于 2022-02-17 16:14:36

我也在向fcc哈哈学习。不确定你是否还需要它,但以防万一其他人也遇到类似的问题。我认为你不应该改变“公众人物”(people0 public )或“公众人物”(people1 public );

把它当作

代码语言:javascript
运行
复制
People[] public people;

如果我没有错,您应该将这里的people值更改为0,因为默认情况下它是空的。( freecodecamp的代码是正确的)

票数 3
EN

Ethereum用户

发布于 2022-02-18 09:08:00

请传递人的索引值为0,1等,以检索相应的值。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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