无法从getter返回字符串数组

时间:2019-04-24 13:52:46

标签: ethereum solidity smartcontracts web3 truffle

我有一个用于字符串数组的solidity contract getter函数:

string[] public flightsRegistered;

function getFlightsRegistered
                          (
                          )
                          public
                          view
                          returns(string[])

{
  return flightsRegistered;
}

使用松露进行编译时,这就是我得到的

松露编译错误

TypeError:仅新的实验性ABI支持此类型    编码器。使用“实用的实验性ABIEncoderV2;”启用    特征。                               返回(字符串[])

还有其他解决方法吗?

Web3 v1.0.0-beta.37

松露 v5.0.9

固体 v0.4.24(solc-js)

1 个答案:

答案 0 :(得分:1)

当前,如果您使用实用的实验性ABIEncoderV2,则仅支持数组返回。如果您不想使用它,则必须再创建一个函数,该函数将返回数组的长度,并且在Dapp中创建一个for循环并通过索引访问数组的元素。下面是示例代码

string