Solidity
重新混合錯誤:函式聲明為視圖,但這可能會修改狀態
此程式碼在視圖函式內並給出錯誤:函式聲明為視圖,但這可能會修改狀態。
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