簡単なDappsを作成しています。フロントサイドにreactを使っていますが、import文で詰まっています。
エラー文は以下の通りでimport truffleContract from 'truffle-contract'
に
「モジュールの宣言ファイルが見つかりません /path/truffle-contract/index.js は暗黙的に'any'型になります」
と注意が出ます。そのためtruffle-contractが読み込めずdeployedメソッドが効かないのだと思われます。
TypeError: truffle_contract__WEBPACK_IMPORTED_MODULE_4___default.a.deployed is not a function at App.componentDidMount (App.js:30)
react
1import React from 'react'; 2import './App.css'; 3import MarriageCertification from './contracts/MarriageCertification.json'; 4import getweb3 from './getWeb3'; 5import truffleContract from 'truffle-contract'; 6 7class App extends React.Component { 8 constructor(props) { 9 super(props); 10 this.state = { 11 web3: null, 12 accounts: null, 13 contract: null, 14 list: [], 15 husbandName: "", 16 husbandAge: "", 17 wifeName: "", 18 wifeAge: "", 19 swearWord: "", 20 } 21 this.handleChange = this.handleChange.bind(this); 22 } 23 24 componentDidMount = async() => { 25 try { 26 const web3 = await getweb3(); 27 const accounts = await web3.eth.getAccounts(); 28 const contract = truffleContract(MarriageCertification); 29 contract.setProvider(web3.currentProvider); 30 const instance = await truffleContract.deployed(); 31 32 this.setState({ 33 web3, accounts, contract: instance 34 }); 35 console.log(this.state.accounts); 36 console.log(this.state.web3); 37 console.log(this.state.contract); 38 } catch (e) { 39 console.log(e); 40 } 41 } 42 //以下省略
###やってみたこと
require文に変えてみる
const truffleContract = require('truffle-contract');
require文に「モジュールの宣言ファイルが見つかりません」が出るようになった。
truffle-contractのアンインストール、再度インストール
npm uninstall truffle-contract --save
npm install truffle-contract
変わらず「モジュールの宣言ファイルが見つかりません」が出続ける。
truffle-contract/index.jsにexportする文が書かれていないのか?とも考えましたが、
module.exports = contract;
とちゃんと書かれていました。
「モジュールの宣言ファイルが見つかりません」で検索しても検索数が少なく、解決策が見つからず困っています。
手がかりになることがありましたらお知恵を拝借させてください。
よろしくお願いします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/26 21:16