¿Cómo asignaría una variable cambiante de web3 al componente react.js? Ejemplo:
La aplicación de clase extiende el componente { constructor (accesorios){ súper (accesorios); este.estado = { número de bloque: web3.eth. número de bloque, } } prestar() { devolver( {this.state.blockNumber} ) } }
¿Cuál sería la mejor práctica sin usar setTimeout
/ requestAnimationFrame
/setInterval
Lo descubrí haciendo lo siguiente:
const web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")); const abi = [{"constante":verdadero,"entradas":[],"nombre":"propietario","salidas":[{"nombre":"","tipo":"dirección"}]," pagadero":falso,"tipo":"función"},{"pagadero":falso,"tipo":"alternativo"}]; dirección constante = "0x3E2A850420e024d2f269d45F85a24Dc6F586277D"; const deploymentContract = web3.eth.contract(abi).at(dirección); filtro const = web3.eth.filter('último'); La aplicación de clase extiende el componente { constructor (accesorios){ súper (accesorios); este.estado = { número de bloque: web3.eth. número de bloque, ...contrato implementado } } componenteHizoMontar(){ filter.watch((error, resultado) =>{ bloque const = web3.eth.getBlock(resultado, verdadero); this.setState({blockNumber: block.number}); }); }
de esa manera, cada vez que tenga un bloque nuevo, su componente de reacción se volverá a renderizar, por lo que siempre obtendrá nuevos valores de su contrato.
poros
web3.eth.filter
se reemplaza por ` web3js.readthedocs.io/en/1.0/web3-eth-subscribe.html en web3 1.0tormentasf