坚固性函数修改值失败



使用Truffle Development框架(web3,react和solidity(来测试一个简单的智能合约。当我按下 UI 上的按钮时,我有一个基本功能正在测试,但它似乎没有按照我预期的方式工作。我希望合约增加值并返回 true。请注意,该值稍后将显示在前端,因为这是我正在使用的值。代码如下:

坚固合同

    uint total = 0;
    function setTotalValue() public returns(bool) {
    total = total + 2;
    return true;
}

应用.js

async modifyTotal() {
fantasyInstance.setKittyValue.call().then(function(res) {
  console.log(res); //THIS RETURNS FALSE TO THE CONSOLE
});

为了澄清起见,modiftyTotal 是在单击 HTML 按钮时调用的。控制台语句返回值"false",实际总值似乎从未更改。有什么想法吗?

您的 JS 代码与合约代码不匹配,并且您省略了检索联系人实例的代码部分,但我猜您的问题是您使用的是call而不是sendTransactioncall在本地节点中执行该方法而不更改状态。您应该仅将其用于测试或常量函数。请参阅 web3js 文档。