Web3js
如何在 React 中從 Solidity 列印“字元串”?
我的智能合約功能是:
function sNName(uint z)public view returns(string memory) { return abc[xyz[z].name]; }
其中 abc 表示映射(bytes32 => string)
在我的 .js 文件中,我這樣呼叫函式:
for(x=0 ;x < t; x++) { n = await marketplaceContract.methods.sNName(x).call().toString(); this.setState(prevState => ({ cart: [...prevState.cart, n] })); }
當我嘗試輸出購物車時,我得到:
[object Promise]
我期待一個字元串 cos 我用過 await。在循環中使用它有什麼錯誤嗎?
請幫忙。
改變這個:
n = await marketplaceContract.methods.sNName(x).call().toString()
對此:
n = (await marketplaceContract.methods.sNName(x).call()).toString()
順便說一句,我相信
n
在你打電話之前那是一個字元串toString()
。如果我是對的,那麼您可以簡單地執行以下操作:
n = await marketplaceContract.methods.sNName(x).call()
通常,您的問題是該
toString()
部分優先於該部分,因此您實際上是在await
嘗試應用於對象。toString``Promise