Coding React berfungsi untuk mendapatkan dan memaparkan data daripada tapak web pihak ketiga
<p>Bantu saya mendapatkan maklumat daripada blokchain dan paparkannya dalam penyemak imbas. Saya ingin tahu cara memanggil fungsi web ketiga ini dalam React.
Kod di bawah ialah kod Solidity yang digunakan untuk mencipta pengguna dalam sistem kami. </p>
<pre class="brush:php;toolbar:false;">fungsi createUser(memori rentetan _userId, memori rentetan _fName, memori rentetan _lName, memori rentetan _mudah alih, memori rentetan _dob, uint256 _umur, memori rentetan _kewarganegaraan, memori rentetan _jantina ) awam {
if(!chkexisitinguserId(_userId)){
pengguna[_userId] = Pengguna(_fName, _lName, _mobile, _dob, _umur,_kewarganegaraan,_jantina);
noofUser++;
allUserId[k] = _userId;
k++;
}
}
fungsi getUser(memori rentetan _userId) paparan awam kembali (memori rentetan, memori rentetan, memori rentetan, memori rentetan, uint256, memori rentetan, memori rentetan) {
Pengguna memori pengguna = pengguna[_userId];
kembali (user.fName, user.lName, user.mobile, user.dob, user.age, user.nationality, user.gender);
}</pre>
<p>Kod berikut ialah kod perpustakaan web ketiga yang berinteraksi dengan kontrak pintar. Kod di bawah disimpan dalam fail refer.js. </p>
<pre class="brush:php;toolbar:false;">import { useContract, useContractWrite } daripada "@thirdweb-dev/react";
eksport fungsi lalai Komponen() {
const { kontrak } = useContract("0xBB417720eBc8b76AdeAe2FF4670bbc650C3E791f");
const { mutateAsync: createUser, isLoading } = useContractWrite(contract, "createUser")
panggilan const = async () =>
cuba {
data const = menunggu createUser([ "John0312", "John", "s", "8090890367", "03-11-2000", 20, "India", "M" ]);
console.info("kejayaan panggilan kontrak", data);
} tangkap (err) {
console.error("panggilan kontrak gagal", err);
}
}
}
eksport fungsi lalai Komponen() {
const { kontrak } = useContract("0xBB417720eBc8b76AdeAe2FF4670bbc650C3E791f");
const { data, isLoading } = useContractRead(kontrak, "getUser", _userId)
}</pre>
<p>Kontrak pintar telah digunakan pada thirdweb dan cuba mengaksesnya. Saya buntu tentang cara memanggil fungsi async "panggilan" ini daripada app.js. </p>
<pre class="brush:php;toolbar:false;">import React, { useEffect } daripada 'react'
fungsi Apl(){
const handleclick = async (e) =>
tunggu panggilan();
}
kembali (
<butang onClick={handleclick}>klik saya</button>
)
}
eksport lalai App</pre>
<p>Ia menjana ralat seperti undefined function call(). </p>