12

I am new to React Native and I am getting this error, but I am not able to resolve it.

I am following the tutorial from the main react-navigation page, but I am not able to complete it.

I will appreciate any help. Thanks!

import * as React from 'react';
import {Text, View} from 'react-native';
import {NavigationContainer} from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack';

function HomeScreen() {
     return (
       <View style={{flex: 1, alignItems: 'center', 
         justifyContent: 'center'}}>
         <Text> Home Screen </Text>
      </View>
     );
   }

   const Stack = createStackNavigator();
   export default function App() {
     return (
       <NavigationContainer>
         <Stack.Navigator>
           <Stack.Screen name="Home" component={HomeScreen} />
         </Stack.Navigator>
       </NavigationContainer>
      );
    }

Screenshoot error

11 Answers11

11

I faced similar issue. Turned out that I was using small-case like this : <Stack.screen> instead of <Stack.Screen>

S R Chaitanya
  • 738
  • 7
  • 11
8

Please check your code whenever writing check the tags and spaces and keep your tags in the same line as much as possible if you are using Visual studio use formatters and autocomplete tags which will help you in solving problems. your code should be as follows:

import React from 'react';
import { Text, View } from 'react-native'
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';

function HomeScreen() {
    return (
        <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }} >
            <Text> Home Screen </Text>
        </View>
    );
}

const Stack = createStackNavigator();
export default function App() {
    return (
        <NavigationContainer>
            <Stack.Navigator>
                <Stack.Screen name="Home" component={HomeScreen} />
            </Stack.Navigator>
        </NavigationContainer>
    );
}
  • 1
    For some reason mine only works with this syntax, and your barebones HomeScreen component is great for debugging. I ended up pasting in your code and filling in with my own. – Mote Zart Aug 26 '21 at 17:59
  • 1
    Could you specify what was wrong originally ? – Pierre Said Oct 18 '22 at 22:28
8

When creating a new navigator, try rebuilding the application. This solved the problem for me

Reset the metro cache

npm start -- --reset-cache

Run on android

npx react-native run-android

Run on iOS

npx react-native run-ios
Mohan Murugesan
  • 246
  • 3
  • 8
6

There is one extra space at the end of some of your components. Putting your code in my IDE and using ESLint for formatting it, this is what I got:

import React from 'react'
import { Text, View } from 'react-native'
import { NavigationContainer } from '@react-navigation/native'
import { createStackNavigator } from '@react-navigation/stack'

function HomeScreen() {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text> Home Screen </Text>{' '} // <--- right here
    </View>
  )
}

const Stack = createStackNavigator()
export default function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Home" component={HomeScreen} />{' '} // <--- right here
      </Stack.Navigator>{' '} // <--- right here
    </NavigationContainer>
  )
}

You can see some {' '} in there. These are extra blank spaces that shouldn't be there. This is what your error is saying, a ' ' was found after the Stack.Screen. Removing these empty spaces should solve your problem.

By the way, I would highly recommend you to use a JS IDE (if you are not using any) and a linter, like ESLint. indentation is a very crucial thing to either avoid this kind of bugs and to let your code more legible.

Nick Alves
  • 364
  • 1
  • 7
  • 1
    This was kind of it for me. I had pasted the Name of a component at the end of my JSX, that I forgot to comment-out or delete after. – SeanMC Feb 07 '22 at 02:52
5

Just build again. npx react-native run-android

sanister
  • 330
  • 6
  • 11
2

import 'react-native-gesture-handler';

add import 'react-native-gesture-handler'; at the top (make sure it's at the top and there's nothing else before it) of your entry file, such as App.js or App.jsx or App.ts or App.tsx. I prefer App insted index

if not add in index too

enjoy

1

Verify if you added this in your MainActivity class:

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(null);
}

Import this on the top of your MainActivity class: import android.os.Bundle;

Also, Every time you install a new package in react-native, always rebuild your project.

Kill(Delete) all the running Terminal and then,

Start App:

npx react-native start

Run Android:

npx react-native run-android
Anurag Dhote
  • 407
  • 1
  • 4
  • 6
1

For me the error was because I used comments in my Stack Navigator, by removing the comments the error was solved.

From:

<Stack.Navigator>
  <Stack.Screen name="User" component={User} />    {/* Some Comment */}
</Stack.Navigator>

To:

<Stack.Navigator>
   <Stack.Screen name="User" component={User} />   
</Stack.Navigator>
Shaz
  • 11
  • 1
0

No solution? Install the latest react-native-screens package. (current version is 3.9.0 in 11.2021)

npm i react-native-screens

for ios

cd ios && rm -rf Pods && pod install && cd ..

I recommend a restart with cache clean option

npm start -- --reset-cache
Serdar D.
  • 3,055
  • 1
  • 30
  • 23
0

For those using expo you can run to clear the cache which was the reason it didn't work for me

expo start -c
Greko2015 GuFn
  • 512
  • 6
  • 13
0

Faced similar issue, I just had to restart the expo server.

tahnoon
  • 133
  • 1
  • 14