reactjs - 使用 React Navigation 导航堆栈时重新渲染组件

标签 reactjs react-native react-navigation expo

我目前正在使用 react-navigation 进行堆栈导航和选项卡导航。

每次用户导航到特定屏幕时是否可以重新渲染组件?我想确保每次到达特定屏幕时都重新运行 componentDidMount(),因此我通过调用适当的操作创建器从服务器获取最新数据。

我应该考虑什么策略?我很确定这是一种常见的设计模式,但我没有看到记录的示例。

最佳答案

如果您使用的是 React Navigation 5.X,只需执行以下操作:

import { useIsFocused } from '@react-navigation/native'

export default function App(){

    const isFocused = useIsFocused()

    useEffect(() => {
        if(isFocused){
            //Update the state you want to be updated
        }
    }, [isFocused])

}

useIsFocused Hook 检查屏幕当前是否处于焦点状态。当屏幕聚焦时,它返回一个 bool 值,该值是 true;当屏幕未聚焦时,该值是 false。 p>

关于reactjs - 使用 React Navigation 导航堆栈时重新渲染组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52805879/

相关文章:

reactjs - 如何在 const 中使用 react 导航?

reactjs - 如何使用 redux-form 进行受控输入?

javascript - 如何使用 webpack 将 firebase 云消息传递包含到 ReactJS 项目中

javascript - Jest - 添加 '</React.Fragment>' 后快照测试失败

javascript - 如何在react-native中导出所有项目的const

css - 如何在不拉伸(stretch)/裁剪 React Native 中的图像的情况下将大图像放入 View 中?

reactjs - 当我更改此 .jsx 文件时,React 未更新。仅当我尝试在服务器上进行更改时才会发生这种情况

react-native - 从初始 SwitchNavigator 屏幕控制目标 StackNavigator 的初始状态

javascript - 如何在react-navigation中向stackNavigator中的所有屏幕添加通用背景图像?