【发布时间】:2020-12-09 22:40:52
【问题描述】:
我有这个可靠代码
pragma solidity ^0.6.12
contract Starting {
struct itemStatus {
bool created;
}
mapping (bytes => itemStatus) public item;
bool[] public boolArray;
function start(bytes memory itemId) public returns (bool[] memory) {
boolArray.push(item[itemId].created);
if (item[itemId].created) {
boolArray.push(item[itemId].created);
return boolArray;
} else {
item[itemId] = itemStatus(true);
boolArray.push(item[itemId].created);
return boolArray;
}
}
}
前端javascript代码是
toStart: function () {
let Instance;
App.contracts.Starting.deployed().then(function (instance) {
Instance = instance;
return Instance.start.call(itemId);
}).then(function (result) {
console.log(result);
}).catch(function (err) {
console.log(err.message);
});
},
我第一次调用 'toStart' 时,我希望 [false, true] 和第二次调用相同的 itemId [false, true, true, true] 和第三次 [false, true, true, true] ,真实,真实]。但是,无论我调用多少次“toStart”,结果始终为 [false, true]。似乎这些值不会持续存在或被存储。为什么会这样?如何更改代码以获得预期的结果?非常感谢。
【问题讨论】:
标签: solidity