@@ -5,7 +5,10 @@ import { createAppContainer, SafeAreaView, ScrollView } from 'react-navigation';
55import {
66 Assets as StackAssets ,
77 createStackNavigator ,
8+ NavigationStackScreenProps ,
9+ NavigationStackOptions ,
810} from 'react-navigation-stack' ;
11+ // eslint-disable-next-line import/namespace
912import { List , Divider } from 'react-native-paper' ;
1013
1114import FullScreen from './src/FullScreen' ;
@@ -37,7 +40,13 @@ useScreens(true);
3740// your app after you first load it with this option enabled.
3841I18nManager . forceRTL ( false ) ;
3942
40- const data = [
43+ type Item = {
44+ component : React . ComponentType < any > ;
45+ title : string ;
46+ routeName : string ;
47+ } ;
48+
49+ const data : Item [ ] = [
4150 { component : SimpleStack , title : 'Simple' , routeName : 'SimpleStack' } ,
4251 { component : HeaderPreset , title : 'UIKit Preset' , routeName : 'UIKit' } ,
4352 { component : RevealStack , title : 'Reveal Preset' , routeName : 'Reveal' } ,
@@ -99,19 +108,19 @@ const data = [
99108// Cache images
100109Asset . loadAsync ( StackAssets ) ;
101110
102- class Home extends React . Component {
111+ class Home extends React . Component < NavigationStackScreenProps > {
103112 static navigationOptions = {
104113 title : 'Examples' ,
105114 } ;
106115
107- _renderItem = ( { item } ) => (
116+ _renderItem = ( { item } : { item : Item } ) => (
108117 < List . Item
109118 title = { item . title }
110119 onPress = { ( ) => this . props . navigation . navigate ( item . routeName ) }
111120 />
112121 ) ;
113122
114- _keyExtractor = item => item . routeName ;
123+ _keyExtractor = ( item : Item ) => item . routeName ;
115124
116125 render ( ) {
117126 return (
@@ -141,7 +150,12 @@ class SafeAreaScrollView extends React.Component {
141150const Root = createStackNavigator (
142151 {
143152 Home : createStackNavigator ( { Home } ) ,
144- ...data . reduce ( ( acc , it ) => {
153+ ...data . reduce < {
154+ [ key : string ] : {
155+ screen : React . ComponentType < any > ;
156+ navigationOptions : NavigationStackOptions ;
157+ } ;
158+ } > ( ( acc , it ) => {
145159 acc [ it . routeName ] = {
146160 screen : it . component ,
147161 navigationOptions : {
0 commit comments