我必须归档文件并保持代码整洁,我去转移了一个非常重要的功能,该功能将在其他文件中使用到它自己的文件中。但是我需要在主文件中调用该函数,但我不知道如何传递它。我已经坚持了几个小时。所以我很感激。
这也是我也要传递功能的文件:
import React, { Component } from 'react';
import './App.css';
import ERC20ABI from './blockchain/ERC20ABI.js';
import goweb3 from './blockchain/goweb3.js'
import ethweb3 from './blockchain/ethweb3.js'
import parseAddress from './TokenBalance';
class App extends Component {
deploSC = async () => {
const accounts = await goweb3.eth.getAccounts();
//const code = ethweb3.eth.getCode(document.getElementById('smartcontract').value); Not working
goweb3.eth.sendTransaction({
from: accounts[0],
data: document.getElementById('scbytecode').value
}, function(error, hash){
console.log(error,hash);
});
}
render() {
return (
<div className="App">
<header className="App-header">
<p>
Enter the smart contract address:
<input type="text" name="name" placeholder="Smart Contract" value="0" id="smartcontract" className="nice-textbox"/>
<input type ="text" placeholder="Smart Contract Bytecode" name="name" id ="scbytecode"className="nice-textbox"/>
<button id="button" onClick={this.address}>Submit!</button>
<button onClick={this.deploSC}> Deploy Sc</button>
</p>
</header>
</div>
);
}
}
export default App;
这是我创建函数的文件:
import ERC20ABI from './blockchain/ERC20ABI.js';
import goweb3 from './blockchain/goweb3.js'
import ethweb3 from './blockchain/ethweb3.js'
export const parseAddress(){
var results
var addresses = [];
var contractObj = new ethweb3.eth.Contract(ERC20ABI,document.getElementById('smartcontract').value));
contractObj.getPastEvents(
'Transfer' || 'allEvents',
{
fromBlock: 0,
toBlock: 'latest'
},
function(err,res){
console.log(err,res);
results = res
}
);
for(var i = 0; i < 10; i++) {
addresses.push([results[i].returnValues.from,results[i].returnValues.value]);
}
console.log(addresses);
console.log(addresses.length)
return addresses
};
答案 0 :(得分:0)
您正在尝试导入不带括号的命名导出。如果将导入语句更改为此,则应该可以:
import { parseAddress } from './TokenBalance';
或者,您可以使用默认导出,也可以不使用方括号导入。