Ethereum DeclarationError:未声明的标识符-尽管它是';存在于ERC721.sol中

Ethereum DeclarationError:未声明的标识符-尽管它是';存在于ERC721.sol中,ethereum,solidity,truffle,openzeppelin,Ethereum,Solidity,Truffle,Openzeppelin,我正在solidity 0.8.3上编写一份合同,我在\u setTokenURI()中遇到了这个奇怪的错误,尽管方法是 函数\u setTokenURI()在@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol()中定义,但此合同不是由您的代码导入的(包括嵌套导入)。这就是函数未声明的原因 由于erc721ristorage扩展了ERC721,因此可以直接从erc721ristorage扩展您的NFTB imp

我正在solidity 0.8.3上编写一份合同,我在
\u setTokenURI()
中遇到了这个奇怪的错误,尽管方法是


函数
\u setTokenURI()
@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol
()中定义,但此合同不是由您的代码导入的(包括嵌套导入)。这就是函数未声明的原因

由于
erc721ristorage
扩展了
ERC721
,因此可以直接从
erc721ristorage
扩展您的
NFTB

import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; // changed import
import "@openzeppelin/contracts/utils/Counters.sol";

contract NFTB is ERC721URIStorage { // changed parent

当我在下个月赚几百万美元的时候,我肯定会给你捐款。我也试过了,但是我的机器不工作,仍然没有申报。我使用的是固化0.8.0
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; // changed import
import "@openzeppelin/contracts/utils/Counters.sol";

contract NFTB is ERC721URIStorage { // changed parent