Truffle
未處理的拒絕(錯誤):無效的字元串值(arg=‘x’, coderType=‘string’, value=5)
用於拆箱
Truffle unbox react
樣板。從執行中收到以下錯誤
npm run start
變化:
"memory"
在 simpleStorage.sol 中添加參數- 在 simpleStorage.sol中
unit
改為string
- 調整埠地址以
"7545"
匹配 Ganache 的埠。- 改成mac
truffle-config
_truffle.js
除了這些變化之外,樣板文件仍然幾乎是準系統。
嘗試解決方案:
- 解除安裝並重新安裝
-g
和local
松露- 為需要特定編譯器的編譯指示嘗試了多種解決方案,但均無濟於事。<- (我確信這可能是問題所在。但是,我一整天都找不到這個錯誤,這告訴我這可能是其他問題,甚至在我到達之前。)
- 嘗試從 solc 文件重新安裝和更新 brew。
- 將 Ganache 更新到最新版本。
- 為 truffle.js 中的編譯器對象建議的嘗試
optimizer
和屬性。versions
- 嘗試完全擦除和重置,並
truffle unbox react
逐步遵循文件的文件而不是其他指南。我會發布程式碼,但實際上,除了我列出的細微變化之外,這些方法中的大多數已經反復將這些程式碼標記為準系統,從一個乾淨的石板重新嘗試 3-4 次。
在擁有最新的 Truffle 框架和 Solidity 之後,我對此的回答是:
- 我必須手動更新預設
truffle unbox react
.sol 文件的編譯指示版本。truffle.js
在(mac) 或(Windows 命名約定) 中創建編譯器對像truffle-config.js
以進行版本控制。- 確保檢查 JSON 文件的編譯器版本。我在為松露配置創建編譯器對像後仔細檢查以確保。(它有點額外,但考慮到對這個不斷發展的行業的支持。)
這裡要提防的一大困惑是外掛。
VS Code Solidity
https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity
我也必須在 gitter 上通知他可能存在的錯誤。請注意,其他solidity 外掛有時也會提到Juan Blanco 原始外掛的一個分支。
這是因為您的 App.js 正在嘗試將 int 值設置為您更改為字元串類型的儲存變數。
在 App.js 中更改第 42 行,以便您的 contract.methods.set() 呼叫設置一個字元串而不是 Int.q
還應該編輯在 App.js 中的 state 定義中 storageValue 的定義方式,從 storageValue: 0 到 storageValue: ""