这里的React-Native新手遇到问题,想知道我是否错过了安装软件包的基本步骤。
我一直在尝试使用react-native-rsa-native软件包(https://github.com/amitaymolko/react-native-rsa-native)
但是我得到
TypeError: undefined is not an object (evaluating '_reactNativeRsaNative.RSA.generateKeys')
我的测试代码是:
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { RSA, RSAKeychain } from 'react-native-rsa-native';
export default class App extends React.Component {
componentWillMount() {
RSA.generateKeys(4096) // set key size
.then(keys => {
console.log('4096 private:', keys.private) // the private key
console.log('4096 public:', keys.public) // the public key
});
}
render() {
...
}
}
遵循的步骤是:
expo init rsatest --template blank@sdk-31 --yarn
cd rsatest
yarn add react-native-rsa-native
react-native link react-native-rsa-native
yarn start
react-native-rsa-native软件包确实出现在node_modules目录中,但是我感觉缺少一些东西。
有什么想法吗?
答案 0 :(得分:1)
不相关的一件事是componentWillMount已被弃用。
https://reactjs.org/docs/react-component.html React文档是React本机文档的基础。
还有 componentWillMount(),如果有获取调用,并带有承诺,则承诺不会在组件安装之前返回,组件将至少返回空一次。
我建议尝试 componentDidMount()
希望这会有所帮助
为拼写而编辑*
答案 1 :(得分:0)
该库与Expo不兼容。在这里检查原因:react native link using expo?
因此,您可能想expo eject
。我认为这也不是一种选择。
您怎么尝试下面的这个呢? https://github.com/z-hao-wang/react-native-rsa
答案 2 :(得分:0)
您可以删除节点模块,然后 npm安装 反应本机链接 react-native run-android / run-ios
也许
这很有帮助: how to delete installed library form react native project