簡體   English   中英

使用 react.js 努力在 web 頁面中顯示智能合約信息

[英]Struggling to display Smart Contract information in web page using react.js

function App(){
const [PopulateStudent] = useState(0);
const handleGet = asnyc (e) => {
e.preventDefault();
const result = await Certificate.methids.PopulateStudent("parameter1", "parameter2", "parameter3", "parameter4").call();
console.log(result)
}
return(
<div className="App">
<header>
<button onClick = {handleGet} type = "button">Fill</button>
</header>
</div>
);
}
export default App;

這是我在 App.js 中的代碼。 我正在嘗試從solidity 智能合約中調用PopulateStudent function。 它有 4 個參數,如下所示。

constructor() public{
PopulateStudent("string", "string", int, int)
Fill();
}
function PopulateStudent(string memory _name, string memory _surname, uint _exam, uint _center) public { 
students[1] = Student({name :_name, surname: _surname, examNumber: _exam, center:_center, qualification:Qualification.Bachelor, level:Level.one});
}

當我在瀏覽器中運行代碼並單擊“ Fill ”按鈕時,我無法獲得要顯示的值。 當我在 InspectElement 下查看控制台日志時,我看到的唯一操作是Object { }當我單擊Fill時。 我是 Solidity 和 React.js 的新手,因此我們將不勝感激。

與智能合約交互時有兩種主要類型的操作。 一個(讀寫)事務和一個(只讀)調用。

PopulateStudent() solidity function 需要一個事務,因為它修改了合約 state (新創建的Student結構保存到合約存儲中)。

如果students屬性( PopulateStudent()存儲的)是public ,您可以調用其自動生成的 getter function (自動生成 - 它不需要在您的合同中)。 例如:

// returns `students[1]`
const result = await Certificate.methods.students(1).call();

暫無
暫無

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

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