问题
Recently I started getting this issue, when I install a react-native package
(eg: react-navigation
) into my project, a whole bunch of packages are been removed (including react, react-native i think).
And then when i try to run command "run-android
", it says it doesn't recognize.
I recently updated to the latest npm
and react-native-cli
. Is it something wrong with "npm install
"? or react-native
?
node version: 8.1.2 <br/>
react-native-cli: 2.0.1 <br/>
react-native: 0.45.1 <br/>
react-navigation: 1.0.0-beta.11
Below are the steps to re-create:
Step 1 - Create project.
Step 2 - Run the "run-android" command (This works).
Step 3 - Install "react-native-navigation" into project.
Notice in the image above. Seems like all the other packages are removed from the project.<br/><br/>
- Step 4 - Try running "run-android" command again. (will fail, but used to work before)
Any idea on what the issue is and any way to solve it?
回答1:
Found the solution here.
At first running npm install
didn't work, but then, deleting the package-lock.json
file and running npm install
did the job.
After that I installed react-navigation
package seperately and it worked fine.
回答2:
Here's what worked for me from start to finish.
react-native init NavTest
(The cli is locally installed with this command)- deleted package-lock.json
npm install --save react-navigation
- deleted the generated package-lock.json
npm install
react-native run android
A little ugly, I don't know entirely what happened, but this worked. https://reactnavigation.org/ for sample code to run.
Or Copy this to index.android.js
import React, { Component } from 'react';
import {
AppRegistry,
Button,
} from 'react-native';
import {
StackNavigator,
} from 'react-navigation';
class HomeScreen extends Component {
static navigationOptions = {
title: 'Welcome',
};
render() {
const { navigate } = this.props.navigation;
return (
<Button
title="Go to Jane's profile"
onPress={() =>
navigate('Profile', { name: 'Jane' })
}
/>
);
}
}
class ProfileScreen extends Component{
static navigationOptions = {
title: 'Jane',
};
render() {
return (null);
}
}
const NavTest= StackNavigator({
Home: { screen: HomeScreen },
Profile: { screen: ProfileScreen },
});
AppRegistry.registerComponent('NavTest', () => NavTest);
来源:https://stackoverflow.com/questions/44629309/react-native-command-run-android-unrecognized-maybe-caused-by-npm-install