4 javascript react-native react-native-navigation expo react-navigation-stack
堆栈导航时,mode="card" 或 mode="modal" 均不起作用。在 OnePlus 5T 和 Android Studio(Google Pixel) 中测试
在 Android 和 IOS 上,默认的 Stack Navigator 模式是“card”,但在测试时,会发生简单的导航转换。即使指定了 mode="card" 或 mode="modal" 后,导航时仍然不会显示对转换的影响。
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { Text, Button } from 'react-native';
const First=({navigation})=>{
return (
<>
<Text>First Page</Text>
<Button title="Second Page" onPress={()=>navigation.navigate("Second")}/>
</>);
}
const Second=()=>{
return (
<Text>Second Page</Text>);
}
const Stack=createStackNavigator();
const StackNavigate=()=>{
return (
<Stack.Navigator mode='modal'>
<Stack.Screen name="First" component={First}/>
<Stack.Screen name="Second" component={Second}/>
</Stack.Navigator>)
}
export default function App() {
return (
<NavigationContainer >
<StackNavigate/>
</NavigationContainer>
);
}
Run Code Online (Sandbox Code Playgroud)
小智 9
我在尝试将屏幕转换应用于我的 React Native 应用程序时遇到了类似的问题。视觉选项似乎mode需要更多关于屏幕如何需要转换的信息。实际工作不会失败的是文档中描述的预制配置中的转换预设。
参考链接:
import { TransitionPresets } from '@react-navigation/stack';
// ...
<Stack.Screen
name="Profile"
component={Profile}
options={{
title: 'Profile',
...TransitionPresets.ModalSlideFromBottomIOS,
}}
/>;
Run Code Online (Sandbox Code Playgroud)
当前可用的转换有:
SlideFromRightIOS,,,,,,,,,,ModalSlideFromBottomIOSModalPresentationIOSFadeFromBottomAndroidRevealFromBottomAndroidScaleFromCenterAndroidDefaultTransitionModalTransition
所有这些都是iOS和Android提供的标准转换
为了使这个过程更加简洁和容易,您可以尝试使用defaultNavigationOptions定义导航器时添加这些转换,就像在ReactNavigation4.x中完成的那样,这会将转换添加到所有上述屏幕中。
| 归档时间: |
|
| 查看次数: |
11434 次 |
| 最近记录: |