我已在此处发布了此内容,并使用创建了本机应用程序
react-native init myapp
added web3 in package.json
npm install
react-native run-ios
但是我收到无法从web3-eth-accounts解析模块加密的错误。有什么办法可以解决此问题
答案 0 :(得分:2)
Crypto是一个节点js模块,运行React Native时-它使用Javascript Core。加密不包括在其中。当我安装crypto时,我使用了以下软件包:
https://www.npmjs.com/package/react-native-crypto
说明:
npm i --save react-native-crypto
# install peer deps
npm i --save react-native-randombytes
react-native link react-native-randombytes
# install latest rn-nodeify
npm i --save-dev tradle/rn-nodeify
# install node core shims and recursively hack package.json files
# in ./node_modules to add/update the "browser"/"react-native" field with relevant mappings
./node_modules/.bin/rn-nodeify --hack --install
rn-nodeify will create a shim.js in the project root directory
// index.ios.js or index.android.js
// make sure you use `import` and not require!
import './shim.js'
// ...the rest of your code
将shim.js
导入index.js文件中。
完成加密操作后,如果仍然无法使用,则必须在App.js文件中创建一个const,如下所示:
export const cryp = require('crypto');
并将其导入所需的组件中。
更新
我为此做了一个全新的构建,我遵循以下内容:
react-native init TestApp
按照上面有关加密的说明进行操作。
链接:
react-native link
react-native run-ios
答案 1 :(得分:1)
react-native-crypto
不适用于最新的本机版本0.63.3
和本机的版本16.13.1
。
我使用了crypto-js
软件包。我的本机应用程序中的版本为3.1.9-1
。运作良好。
您可以在package.json
文件中添加以下行。
"crypto-js": "3.1.9-1",