React-Native无法导入库。

3
我将尝试将以太坊的web3.js库导入到一个React Native项目中。
我已经按照React 链接库的说明进行了操作,安装了web3.js包并使用以下命令进行了链接:
$ 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);

当我在模拟器中运行应用程序时,收到的错误信息是 {"type":"InternalError","message":"react-packager has encountered an internal error, please check your terminal error output for more details"} ,但终端只显示相同的消息,不是很有帮助。
我该如何将这样的库导入到React Native中?

你只需要链接使用本地代码的库。带有html/css的包也不起作用,但这似乎没有这个问题。尝试关闭打包程序并重新运行应用程序。 - Matt Aft
4个回答

0

0

我能够让它在web3版本0.x上运行,并开源了解决方案,创建了babel-preset-react-native-web3,使其开箱即用。如果使用Math.Random()来创建帐户,则可能不被认为是100%安全的。

有关更多信息,请参见以下示例应用程序,使用web3版本0.20.0react16expo

希望这能帮到你。


-2

尝试使用以下代码导入库:

var Web3 = require('web3');


修复: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 - Vivek

-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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接