Openzeppelin
tokenId (uint256) 未正確返回
在我的 tokenURI 函式中,我將它設置為返回被呼叫的 tokenId,但是當我執行該方法時,我得到一個符號。
function tokenURI(uint256 _tokenId) public view virtual override returns (string memory) { require(_exists(_tokenId), "ERC721Metadata: URI query for nonexistent token"); return string(abi.encodePacked(_baseURI(), "/", _tokenId, ".json"));
這是我在 Etherscan 中呼叫此函式時得到的響應。
是否無法將 tokenId 作為 uint256 脫鏈返回?
問題是
abi.encodePacked()
編碼uint256
為原始字節序列。為了使其輸出/1234.json
,您必須將 an 轉換uint256
為十進製字元串。例如,
uint2str
從這個問題Conversion of uint to string中使用它將如下所示:return string( abi.encodePacked(_baseURI(), "/", uint2str(_tokenId), ".json"));