【发布时间】:2019-08-15 09:50:42
【问题描述】:
Solidity 函数在 Remix 和 truffle 控制台上执行时返回一个字符串数组,而从 JS 调用时它返回一个空数组
实体代码
mapping(address => string[]) addressLink;
function getLinks(address a) public view returns (string[] memory)
{
return addressLink[a];
}
JS代码
contract.methods.getLinks(accounts[0]).call().then(res => {
console.log(res)
});
从 JS 调用时松露控制台结果和预期结果
[ 'QmTiMLN8X4NE4ho5mqJ9t4bJ17JxfMHAFcg3z66f8vdUh1' ]
浏览器控制台上的结果(实际结果)
[""]
0: ""
length: 1
【问题讨论】:
-
如果合同是本地的?你确定你在从 web3js 获取之前已经设置了字符串吗?
-
是的,联系人是本地人。我已经通过 web3 设置了字符串,并首先尝试从控制台检索,这给出了预期的结果,当从 web3 调用时,它返回一个空数组
-
你能显示完整的代码吗?我需要看看你是如何从 web3 获得合同的。
-
无法在此处粘贴完整代码。获取实例pastebin.com/mrjEmRmm 的片段
标签: javascript solidity web3