reactjs - 从与 ether.js 的反应中查询视图函数的最佳方法?
问题描述
js 与我的智能合约进行交互。我的合同有这样的功能,例如:
function getOfferById(uint256 _tokenId) public view returns (uint256) {
require(_tokenId < MAX_B, "This tokenId does not exist");
uint256 offer = bOffers[_tokenId];
require(offer > 0, "There is no offer for this token");
return offer;
}
现在要在页面加载时或每当有新事件出现并且这些数据可能已更改时查询此数据时,我是这样做的:
useEffect(() => {
async function getOfferById() {
if (myContracts) {
const _getOfferById = myContracts.getOfferById;
if (_getOfferById && id) {
try {
const _offer = await _getOfferById(id);
setoffer(formatUnits(_offer, 'ether'));
} catch (e) {
setoffer(0);
}
}
}
}
getOfferById();
}, [myContracts, id, myEventOfferCreated, myEventOfferCanceled]);
但是这样一来,我的元掩码总是会收到很多控制台错误,因为 require 语句经常命中。
最好的方法是什么?
解决方案
推荐阅读
- python - 点击 python Cli.testing TypeError
- haskell - 无法将类型“a”与“a1”匹配
- laravel - Laravel Eloquent - 无法查询与所有权的关系
- html - 带有三角形形状的 HTML5 正文背景 CSS
- python - 尝试使用 Opencv 和 Flask 显示多个流
- gnuplot - gnuplot 安装失败 - 目标“qtgnuplot_fr.qm”的配方失败
- javascript - 我怎样才能得到这个代码来计算金额列
- r - 修改 .RData 文件中的表
- python - 包含列子集的 CSV
- mysql - MYSQL 由于 Locking 导致性能下降