React Navigasyonu + TypeScript Hatası: 'EventStackParams' yazın 'Record <string, object | tanımsız> '
Nov 18 2020
Benim Doğalöğesini Tepki / Tepki Navigasyon 5 Navigator için typescript ekleyerek, ancak ekleme ile bir sorun yaşıyorum EventStackParamsiçin createStackNavigator().
React Native 5 Docs , StackOverflow ve GitHub'a baktım ama şansım yok. Neyi yanlış yapıyorum? Aşağıda benim hatam ve kodum var
Hata:
Type 'EventStackParams' does not satisfy the constraint 'Record<string, object | undefined>'.
Index signature is missing in type 'EventStackParams'.ts(2344)
Navigation.tsx:
// Imports: TypeScript Types
import { EventStackParams } from '../types/types';
// React Navigation: Stack Navigators
const RootStack = createStackNavigator();
const EventsStack = createStackNavigator<EventStackParams>();
// Events Navigator
const EventsNavigator = () => (
<EventsStack.Navigator initialRouteName="Events">
<EventsStack.Screen
name="Events"
component={Events}
options={{
title: '',
headerShown: false,
}}
/>
<EventsStack.Screen
name="EventDetails"
component={EventDetails}
options={{
title: '',
headerShown: true,
headerStyle: {
elevation: 0,
shadowOpacity: 0,
borderBottomWidth: 0,
},
}}
/>
</EventsStack.Navigator>
);
EventDetails.tsx
// Imports: Dependencies
import { RouteProp } from '@react-navigation/native';
// Imports: TypeScript Types
import { ReduxState, EventStackParams } from '../../types/types';
// React Hooks: React Navigation
const route = useRoute<RouteProp<EventStackParams, 'EventDetails'>>();
Types.tsx:
// TypeScript Type: Event
export interface Event {
eventTitle: string,
eventDescription: string | null,
eventStreet: string,
eventLocation: string,
eventLatitude: number,
eventLongitude: number,
eventDateStart: number,
eventDateEnd: number,
eventTimeStart: string,
eventTimeEnd: string,
};
// TypeScript Type: Event Stack Params
export interface EventStackParams {
Events: undefined,
EventDetails: {
item: Event,
},
};
Yanıtlar
1 jefelewis Nov 19 2020 at 00:31
Güncelleme:
Bu değiştirerek giderilmiştir interfaceTo type.
// TypeScript Type: Event Stack Params
export type EventStackParams = {
Events: undefined,
EventDetails: {
item: Event,
},
};
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı