Solidity

重新混合錯誤:函式聲明為視圖,但這可能會修改狀態

  • March 10, 2018

此程式碼在視圖函式內並給出錯誤:函式聲明為視圖,但這可能會修改狀態。

if ( auction.iS == false){      //check if such auction exists
emit NoSuchAuction(msg.sender, _auctionName); 
return; }

NoSuchAuction() 是一個事件。_auctionName 是一個字元串。拍賣是一個結構,iS 是一個布爾值。

事件在可以過濾的區塊鏈中佔有一席之地。但是視圖函式的功能不能對區塊鏈狀態進行任何更改。這就是您收到錯誤的原因。使用return, 來取回參數,如果需要事件,則view從中刪除。View&event不能住在一起。

了解有關狀態變化的更多資訊:http ://solidity.readthedocs.io/en/latest/contracts.html?highlight=emit#view-functions

引用自:https://ethereum.stackexchange.com/questions/42301