Solidity
Solidity:錯誤編碼參數:錯誤:無效的 BigNumber 字元串
我剛剛開始通過觀看 youtube 影片 ( https://www.youtube.com/watch?v=M576WGiDBdQ )來學習 Solidity 。這是為什麼我不斷收到無效參數的重複問題?,但我無法用文章上的答案解決問題。而且我沒有足夠的聲譽發表評論。
整個程式碼如下。(它在影片上執行良好)
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; } }
其他功能正常工作,但訪問“人”不斷給我一個錯誤
呼叫 SimpleStorage.people 出錯:錯誤編碼參數:錯誤:無效的 BigNumber 字元串 (argument=“value” value="" code=INVALID_ARGUMENT version=bignumber/5.5.0)
kassé 在文章中建議(為什麼我不斷收到無效的論點?)
當您在 people 變數上部署 put 0 並點擊它後,您可以使用 de addPerson 函式添加。此外,如果您想添加第二個人,則將 1 放入人員,然後再添加另一個
我嘗試修改程式碼如下:
People[0] public people;
和
People[1] public people;
它給了我以下資訊
contracts/SimpleStorage.sol:12:12: TypeError: Array with zero length specified.
和
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.
如果有任何其他建議,請告訴我。
我也在向fcc學習哈哈。不確定您是否仍然需要它,但以防萬一其他人也遇到類似問題。我不認為你應該改變“人
$$ 0 $$公眾;”或“人1公眾;” 只需將其保留為
People[] public people;
如果我沒記錯的話,您應該將此處的人員值更改為 0,因為預設情況下它是空白的。(freecodecamp的程式碼是正確的)
請將人物的索引值傳遞為 0,1 等以檢索對應的值。