React-Native无法导入库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React-Native无法导入库相关的知识,希望对你有一定的参考价值。

我正在尝试将以太坊web3.js library导入React Native项目。

我按照React Linking Libraries说明,安装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?

答案

请尝试此操作以导入库:

var Web3 = require('web3');

另一答案

我创建了一个关于如何使用web3.js 1.0.0-beta.24设置Create React Native App的逐步简单指南,而不修改node_modules

https://gist.github.com/dougbacelar/29e60920d8fa1982535247563eb63766

另一答案

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

有关更多信息,请参阅以下sample app使用web3 version 0.20.0react 16expo

希望有所帮助,

另一答案

修正: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

以上是关于React-Native无法导入库的主要内容,如果未能解决你的问题,请参考以下文章

webpack 代码拆分是不是适用于 react-native?

主目录之外的React-Native导入文件

react-native 导入时如何更改默认组件名称?

原生iOS项目导入ReactNative,各种问题

react-native 组件的导入导出

使用 Relay 和 React-Native 时的条件片段或嵌入的根容器