【发布时间】:2018-04-16 13:20:30
【问题描述】:
我注意到,每当我使用组件可用的导航道具导航到另一个页面时,它都会触发组件的重新渲染,并且每当我导航到之前渲染过的屏幕时都会调用 componentDidMount。
例如,当我将用户导航到他们的个人资料页面并且他们决定返回仪表板时,最初呈现的仪表板组件正在再次呈现,并且正在调用 componentDidMount,从而降低了应用程序的速度。
import { StackNavigator } from 'react-navigation';
const Routes = StackNavigator({
home: {
screen: HomeScreen
},
dashboard: {
screen: Dashboard
},
profile: {
screen: Profile
}
},
{
headerMode: 'none',
});
在我的组件中,我使用 this.props.navigation.navigate('ScreenName') 导航用户
如果在导航回组件时阻止组件重新渲染,我将不胜感激。谢谢
【问题讨论】:
-
假设您的屏幕是有状态的,如果您不想重新渲染,请添加一个返回
false的shouldComponentUpdate生命周期方法。 -
感谢您的回复。在初始渲染时怎么样,我希望组件只有在用户在第一个实例之后导航回它时才能正常渲染。
标签: javascript reactjs react-native