我正在尝试将以太坊web3.js library导入React Native项目。
我遵循了React Linking Libraries说明,安装了web3.js包并将其与命令相关联:
public class Upload extends BaseActivity implements View.OnClickListener {
我的$ npm install web3 --save
$ react-native link
文件如下所示:
index.ios.js
我运行应用程序import { default as Web3 } from 'web3';
import React, { Component } from 'react';
import { AppRegistry, Text } from 'react-native';
class ReactProject extends Component {
render() {
return (
<Text>Hello world!</Text>
);
}
}
AppRegistry.registerComponent('ReactProject', () => ReactProject);
时在模拟器中收到的错误消息不是很有用,因为终端只显示相同的消息。
如何将这样的库导入React Native?
答案 0 :(得分:0)
我创建了一个有关如何使用web3.js 1.0.0-beta.24
设置Create React Native App
的逐步简单指南,而不修改node_modules
:
https://gist.github.com/dougbacelar/29e60920d8fa1982535247563eb63766
答案 1 :(得分:0)
我能够在web3版本0.x上运行并开源创建babel-preset-react-native-web3的解决方案,以便开箱即用,如果用于创建帐户,则可能不会被视为100%安全因为它在幕后使用Math.Random()
。
有关详细信息,请参阅以下sample app使用web3 version 0.20.0
,react 16
和expo
。
希望有所帮助,
答案 2 :(得分:-2)
请尝试改为导入库:
var Web3 = require('web3');
答案 3 :(得分:-2)
已修复: https://github.com/ethereum/web3.js/issues/576
编辑以下文件
/node_modules/bignumber.js/bignumber.js
编辑如下:
-if ( !crypto ) try { crypto = require('crypto'); } catch (e) {}
+if ( !crypto ) try { crypto = require('crypto-js'); } catch (e) {}
Web3版本:0.18.2