簡體   English   中英

我無法將數據從智能合約提取到 HTML

[英]I can't draw data from smart contract to HTML

這是錯誤:

未捕獲(承諾)TypeError:無法讀取未定義的屬性(讀取“1”)

這是我用於從智能合約中提取數據的 function(我稱此 function 為 getCandidate(1)):

async function getCandidate(cad){
    await myContract.methods.adaylar(cad);{
        var result;
        console.log("result : ", result);
        document.getElementById("cad" + cad).innerHTML = result[1];
        document.getElementById("cad"+cad+'count').innerHTML = result[2].toNumber();
        
    };
}

假設adaylar() function

  • 返回至少包含 3 個項目的數組或結構(這樣您在訪問result[2]時就不會遇到“越界”錯誤)
  • 並且它是 Solidity 中的viewpure function

您的代碼中有兩個問題:

如果您想進行(只讀) call()send() ) 事務(讀寫), web3js庫要求您顯式輸入 state。 基於上述假設,您需要撥打電話:

await myContract.methods.adaylar(cad).call();

這會檢索返回值,但不會將其存儲在 JS 代碼中的任何位置。 因此,您需要將其存儲在result變量中才能訪問它:

var result = await myContract.methods.adaylar(cad);
console.log("result : ", result);
document.getElementById("cad" + cad).innerHTML = result[1];
document.getElementById("cad"+cad+'count').innerHTML = result[2].toNumber();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM