如何解决web3.js与React Native冲突

环境

node版本必须大于6

"react-native":"0.49.5",

 "web3":"1.0.0-beta.34",

 "node-libs-browser":"2.1.0",

 "babel-cli":"^6.26.0",

 "babel-preset-es2015":"^6.24.1",

1.安装node-libs-browser

npm install --save node-libs-browser

2.在项目的根目录下创建一个名为rn-cli.config.js的文件,并将以下代码添加到其中:

const extraNodeModules = require('node-libs-browser');

module.exports={ 

     extraNodeModules,

};

3.在项目的根目录下创建一个名为global.js的文件,并将以下代码添加到其中:

//Inject node globals into React Native global scope.

global.Buffer = require('buffer').Buffer;

global.process = require('process');

if(typeof btoa === 'undefined') {

    global.btoa = function(str) {

        return new Buffer(str,'binary').toString('base64'); 

     };

}

if(typeof atob === 'undefined') {

    global.atob=function(b64Encoded) {

        return new Buffer(b64Encoded,'base64').toString('binary');

    };

}

4.将global.js文件导入App.js文件

import   ' ./global ';

5.安装babel-preset-es2015

npm install --save-dev babel-cli babel-preset-es2015

6.现在我们可以安装web3.js api

yarn add web3@'1.0.0-beta.34' --save

7.需要用到的js文件中引入

const Web3 = require(' web3 ');

8.测试

componentWillMount() {

    const web3=new Web3(

        new Web3.providers.HttpProvider('https://mainnet.infura.io/')

     );

}

render(){

    web3.eth.getBlock('latest').then(console.log)

    return(

       

            测试

        

    )

}

9.报错冲突解决(修改成如下代码)


React-native对接以太坊钱包

你可能感兴趣的:(如何解决web3.js与React Native冲突)