Реагировать, передавая функцию со значением - PullRequest
0 голосов
/ 28 ноября 2018

Мне нужны файлы, и чтобы сохранить код в чистоте, я решил передать очень важную функцию, которую я буду использовать в других файлах, в отдельный файл.но мне нужно вызвать эту функцию в основном файле, и я не знаю, как ее передать.Я застрял с этим в течение нескольких часов.Поэтому я ценю любые мысли.

Это файл, который я тоже хочу передать функции:

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
    };

1 Ответ

0 голосов
/ 28 ноября 2018

Вы пытаетесь импортировать именованный экспорт без скобок.Если вы измените оператор импорта на этот, он должен работать:

import { parseAddress } from './TokenBalance';

В качестве альтернативы вы можете использовать экспорт по умолчанию и импорт без скобок.

См. Это: https://hackernoon.com/import-export-default-require-commandjs-javascript-nodejs-es6-vs-cheatsheet-different-tutorial-example-5a321738b50f

...