- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 React Navigation x5,我有 StackNavigator
正在加载一堆屏幕。我想在模糊上卸载一个特定的屏幕组件,以获得与使用 DrawerNavigator
时使用 unmountOnBlur
相同的结果。
我怎样才能做到这一点?
最佳答案
自 5.x
以来,目前有三种方法可以做到这一点。你也可以
useFocusEffect
钩子(Hook)来触发一个 Action (推荐),或者useIsFocused
钩子(Hook),或者焦点
事件useFocusEffect
示例import { useFocusEffect } from '@react-navigation/native';
function Sample(props) {
const [shouldHide, setShouldHide] = React.useState(false);
useFocusEffect(() => {
setShouldHide(false)
return () => {
setShouldHide(true)
}
});
return shouldHide ? null : <InnerComponent {...props} />;
}
useIsFocused
Hook 示例import * as React from 'react';
import { Text } from 'react-native';
import { useIsFocused } from '@react-navigation/native';
function Profile() {
// This hook returns `true` if the screen is focused, `false` otherwise
const isFocused = useIsFocused();
return {isFocused ? <Text>Inner component</Text> : null};
}
注意:
Using this hook component may introduce unnecessary component re-renders as a screen comes in and out of focus. ...Hence we recommend to use this hook only if you need to trigger a re-render.
可以在文档中找到更多信息 Call a function when focused screen changes
除此之外,堆栈导航器带有一个名为 detachInactiveScreens
的 Prop ,默认情况下启用。 Link to the documentation
Boolean used to indicate whether inactive screens should be detached from the view hierarchy to save memory. Make sure to call
enableScreens
fromreact-native-screens
to make it work. Defaults totrue
.
(关于启用 React Native Screens 的说明可以在 https://reactnavigation.org/docs/react-native-screens/#setup-when-you-are-using-expo 找到)
在堆栈导航器的 options
对象中,还有一个 detachPreviousScreen
属性来自定义某些屏幕的行为。通常也会启用此选项。
Boolean used to indicate whether to detach the previous screen from the view hierarchy to save memory. Set it to
false
if you need the previous screen to be seen through the active screen. Only applicable ifdetachInactiveScreens
isn't set to false. Defaults tofalse
for the last screen whenmode='modal'
, otherwisetrue
.
关于react-native - 如何在 StackNavigator 中模糊时卸载屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67674460/
我在我的项目中使用 react 导航。我想在抽屉导航中使用堆栈导航。我想在堆栈导航屏幕中使用 this.navigation.toggleDrawer(),但不将其附加到堆栈导航屏幕中。 // dra
我是 React Native 和 React-Navigator 的新手,想实现这个设置: 我已经有 SignUpScreen,来自 SignUpScreen01 - SignUpScreen05,
我试图让一个屏幕在常规 StackNavigation 对象中充当模态。意思是,我希望所有屏幕都充当卡片(从侧面渲染),但一个屏幕充当模态(从底部渲染),但它不起作用,所有屏幕都从侧面渲染。 代码:
我想做一个简单的任务:成功登录后将用户重定向到他的主页。我使用react-navigation的StackNavigator来达到这个目的: // App.js class App extends C
在我的 React Native 应用程序中,我使用 React Navigation 库来实现导航。我在 StackNavigator 上构建了整个应用程序。现在我遇到了一个我不知道如何解决的问题。
编辑:我了解我的问题和解决方案,所以我改写我的问题,然后给出答案。 一个普通的 StackNavigator 和带有导航的屏幕看起来像这样: class ExampleScreen extends R
我目前在我的 React native 应用程序中使用 StackNavigator。 我有两个屏幕,它们都将导航到同一屏幕 LoginScreen。但是,根据我来自哪个屏幕,我想转到不同的屏幕。 例
如何在 StackNavigator 中更改动画的方向? 当前行为 当用户转到另一个屏幕时,屏幕从 飞出从下到上 . 预期行为 当用户转到另一个屏幕时,屏幕从 飞出从右到左 . (比如 Faceboo
我有用户列表,每个用户在列表中都有其显示图像。 我正在尝试的是,每当用户按下显示图像时,都会通过 stackNavigation 重定向到他/她的个人资料。 自定义TabView: const
我已经开始学习 react 原生,很棒的东西。我已经能够使用 StackNavigator 在屏幕之间导航。 在一个屏幕上,我显示一个由静态 json 文件填充的列表。单击一行后,应该会弹出下一个屏幕
我正在使用react-native,当我尝试使用StackNavigator导航到另一个页面时,上一个页面正在后台运行 这是 App.js import Login from './app/compo
这是我的App.js import React, {Component} from 'react'; import { createAppContainer } from 'react-navigat
我在使用 React-Native js 框架开发带有导航的应用程序时遇到了问题。我有一个 StackNavigator,它可以在登录页面和主页之间导航。但我不想让用户在按下电话按钮或通过屏幕栏上的按
好的,大家好,我有一个问题,我是 react 原生开发的新手,并且遇到了 StackNavigator 的问题。当我按下用于导航当前屏幕的按钮时,它会出现如下错误: enter image descr
我们在我们的 React Native 应用程序中遇到了一个非常奇怪的 react 导航场景,它只在 Android 上观察到(在模拟器和物理设备上 AND 用于调试构建和发布构建),但它在 iOS
我有一个带有三个选项卡的 TabNavigator。这三个选项卡中的每一个都是 StackNavigators。 如果用户单击同一个选项卡按钮两次,我如何才能将 StackNavigator 导航回来
我正在使用 React Navigation x5,我有 StackNavigator 正在加载一堆屏幕。我想在模糊上卸载一个特定的屏幕组件,以获得与使用 DrawerNavigator 时使用 un
这是包含我的抽屉的组件 export default class StackInView extends React.Component { render() { const Stack
我没有什么问题......我在 TabNavigator 中嵌套了 StackNavigator,例如: 表1 堆栈屏幕 Tab2 Tab3 Tab4 我想在选项卡 View 上保留滑动,但想在打开
我需要为 Navigation 5.0 中的堆栈导航器中的特定屏幕将导航动画更改为 bottom-to-top。 最佳答案 我在 StackOverflow 中寻找答案,但没有找到与单屏相关的解决方案
我是一名优秀的程序员,十分优秀!