ОБНОВЛЕНИЕ: Проблема возникает, когда я использую анимацию с использованием ...TransitionPresets.SlideFromRightIOS
.
У меня есть простой экран, при котором при нажатии на touchableOpacity он переходит на другой экран с некоторые параметры. Проблема в том, что иногда мне нужно дважды нажать, чтобы перейти на другой экран. Я не уверен, почему это происходит.
DEMO:
Приложение. js
<SafeAreaProvider>
<NavigationContainer>
<Stack.Navigator
screenOptions={{
headerStyle: { elevation: 0, },
headerTitleStyle: { fontFamily: "Google Sans Regular", color: "#161515", },
headerTintColor: "#787887",
...TransitionPresets.SlideFromRightIOS,
}}
>
ЭКРАН 1 (вне рендера)
componentDidMount(): void {
axios.get("https://freegeoip.app/json/")
.then(response => {
let responseData = response.data;
let calling_code = "";
for(let country of countryData) {
if(country.country_code === responseData.country_code) {
calling_code = country.calling_code;
break;
}
}
this.setState({
country_name: responseData.country_name,
country_code: responseData.country_code,
region_name: responseData.region_name,
city_name: responseData.city,
calling_code: calling_code,
});
})
.then(() => {
SplashScreen.hide();
});
}
_onSelectCountry = (data) => {
this.setState(data);
};
ЭКРАН 1 (внутри рендера)
<KeyboardAvoidingView behavior="padding">
<View style={ styles.signInForm }>
<TouchableOpacity
style={ styles.countrySelector }
activeOpacity={ 0.1 }
onPress={ () => Navigation.navigate("CountrySelect",
{
onSelect: this._onSelectCountry,
countryCode: this.state.country_code,
})
}
>
<Text style={ styles.countryCode }>
{ this.state.country_code } ({ this.state.calling_code })
</Text>
<Icon name="arrow-drop-down" size={ 22 } />
</TouchableOpacity>
<TextInput
style={ styles.phoneNumberInput }
placeholder="Enter your mobile number"
placeholderTextColor="#787887"
keyboardType="phone-pad"
autoFocus={ true }
/>
</View>
</KeyboardAvoidingView>