title: Component with fewer than 1 type argumanet in class delcaration
body: <pre><code>/**
   * Sample React Native App
   * https://github.com/facebook/react-native
   *
   * @format
   * @flow
   */
  
  import React, {Component} from 'react';
  import {Platform, StyleSheet, Text, View} from 'react-native';
  import { createBottomTabNavigator, createSwitchNavigator, createStackNavigator, createAppContainer } from 'react-navigation';
  import Event from './src/components/event/Event.js';
  import Chat from './src/components/chat/Chat.js';
  import Signup from "./src/components/signup/Signup.js";
  import Verif1 from "./src/components/signup/Verif1.js";
  import NewEvent from "./src/components/event/Newevent.js";
  import EditUser from "./src/components/user/Edituser";
  import NewUser from "./src/components/user/Newuser";
  import io from 'socket.io-client';
  import GLOBAL from "./src/lib/global";
  import SplashScreen from "./src/components/splashscreen/SplashScreen";
  
  
  const instructions = Platform.select({
    ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu',
    android:
      'Double tap R on your keyboard to reload,\n' +
      'Shake or press menu button for dev menu',
  });
  
  //socket.io
  const socket = io(GLOBAL.BASE_URL, {
    //const socket = io(GLOBAL.BASE_URL, {
      transports: ['websocket'],
      jsonp: false
    });
  console.log("socket id in App.js : ", socket.id);
  
  
  socket.on('disconnect', (reason) =&gt; {
    // ...
    if (reason === 'io server disconnect') {
      // the disconnection was initiated by the server, you need to reconnect manually
      socket.connect();
    }
    // else the socket will automatically try to reconnect
  });
  
  const ChatWithSocket = (props) =&gt; (&lt;Chat {...props} socket={socket} /&gt;)
  
  const EventStack = {
  
      Event:  {
        screen: Event,
        navigationOptions: {
          title: 'Event',
        },
      },
      NewEvent: {
        screen: NewEvent,
        navigationOptions: {
          title: 'New Event',
        },
      },
  
      Chat: {
        screen: ChatWithSocket,
        navigationOptions: {
          title: 'Chat',
        },
  
      },
  
    };
  
  const SignupStack = {
    Signup: {
      screen: Signup,
      navigationOptions: {
        title: 'Signup',
      },
    },
    Verif1: {
      screen: Verif1,
      navigationOptions: {
        title: 'Verify User',
      },
    },
  };
  
  const UserStack = { 
      NewUser: {
        screen: NewUser,
        navigationOptions: {
          title: 'New User',
        },
      },
      /* EditUser: {
        screen: EditUser,
        navigationOptions: {
          title: 'Edit User',
        },
      },     */
  
  };
  
  
  const bottomTabNavOptions =  {
    defaultNavigationOptions: ({ navigation }) =&gt; ({
      tabBarIcon: ({ focused, tintColor }) =&gt; {
        const { routeName } = navigation.state;
        console.log("Navigation : ", navigation.dangerouslyGetParent().getParam('params'));
        let iconName;
        if (routeName === 'Event') {
          iconName = `ios-information-circle${focused ? '' : '-outline'}`;
        } else if (routeName === 'User') {
          iconName = `ios-options${focused ? '' : '-outline'}`;
        }
  
        return &lt;Text&gt;Hello the world!&lt;/Text&gt;
      },
    }),
    tabBarOptions: {
      activeTintColor: 'tomato',
      inactiveTintColor: 'gray',
    },
  };
  
  class App extends React.Component {  //&lt;&lt;&lt;=== this line cause error
  
    EventRoute = (initRoute) =&gt; {
      createStackNavigator(EventStack, {
        initialRouteName: initRoute,
      })
    };
  
    UserRoute = (initRoute) =&gt; {
      createStackNavigator(UserStack, {
        initialRouteName: initRoute,
      })
    };
  
  
    bottomTabScreen = () =&gt; {
      //if there is a token and user
      if (this.props.token &amp;&amp; this.props.user) {
      return createBottomTabNavigator(
        {
          Event: {screen: this.EventRoute("Event")},
          User: {screen: this.UserRoute("User")},
        }, bottomTabNavOptions
      );
      } else  {
      return createStackNavigator(
        {
          Signup: {screen: Signup},
          Verif1: {screen: Verif1},
        }
      );
      };
    };
  
    createDynamicRoutes = () =&gt; {
      return createAppContainer(
        createBottomTabNavigator(this.bottomTabScreen())
      );
    };
  
      render() {
  
        const AppContainer = this.createDynamicRoutes();
        return &lt;AppContainer /&gt;;
      }
  };
  
  const InitialNavigator = createSwitchNavigator({
    Splash: SplashScreen,
    App: App,
  });
  export default createAppContainer(InitialNavigator);  
  </code></pre>
  
  <p>But the declaration of <code>class App extends React.Component {...}</code></p>
  
  <p>shows the error in IDE VS Code:</p>
  
  <pre><code>Cannot use  property `Component` [1] with fewer than 1 type argument.Flow(InferError)
  react.js(26, 30): [1] property `Component`
  Quick Fix...
  Peek Problem
  </code></pre>
  
  <p>Based on my reading of latest document for react native 0.59, <code>class App extends React.Component {...}</code> is fine. Version of React navigation is 3.9.</p>