React native 需要一个主组件,每当我从抽屉[react native]点击它时,它都会重新渲染
我有一个名为Home的抽屉屏幕,它可以渲染材质顶部选项卡导航器和其中定义的其他堆栈屏幕。问题是,当我从其他定义的屏幕单击主屏幕时,我想重新渲染主屏幕。请帮助,这是应用程序中需要的最通用功能,但我无法做到。 |iOS或Android |两者皆有 |@react-navigation/native 5.0.7 |@react导航/抽屉5.1.0 |react native Reactivated 1.7.0 |react本机手势处理程序1.6.0 |反应本机安全区域上下文0.7.3 |react本机屏幕2.8.0 |反应本机0.61.5React native 需要一个主组件,每当我从抽屉[react native]点击它时,它都会重新渲染,react-native,react-navigation-v5,React Native,React Navigation V5,我有一个名为Home的抽屉屏幕,它可以渲染材质顶部选项卡导航器和其中定义的其他堆栈屏幕。问题是,当我从其他定义的屏幕单击主屏幕时,我想重新渲染主屏幕。请帮助,这是应用程序中需要的最通用功能,但我无法做到。 |iOS或Android |两者皆有 |@react-navigation/native 5.0.7 |@react导航/抽屉5.1.0 |react native Reactivated 1.7.0 |react本机手势处理程序1.6.0 |反应本机安全区域上下文0.7.3 |react本机
您应该使用导航事件来检测特定的屏幕焦点和模糊。 焦点-当屏幕进入焦点时,会发出此事件 模糊-当屏幕失去焦点时会发出此事件 用法
函数配置文件({navigation}){
React.useffect(()=>{
const unsubscribe=navigation.addListener('focus',()=>{
//此事件在屏幕聚焦时发出
//做点什么
});
退订;
},[导航];
返回;
}
函数配置文件({navigation}){
React.useffect(()=>{
const unsubscribe=navigation.addListener('blur',()=>{
//当屏幕失去焦点时,将发出此事件
//做点什么
});
退订;
},[导航];
返回;
}
有关更多详细信息,您可以阅读文档不确定重新渲染的含义,但如果您想在每次打开屏幕时运行函数,可以使用usefocuseffect挂钩将主屏幕刷新到其初始状态。按下抽屉屏幕的home(主页)按钮时,您可以查看图像上方
function Profile({ navigation }) {
React.useEffect(() => {
const unsubscribe = navigation.addListener('focus', () => {
//This event is emitted when the screen comes into focus
// do something
});
return unsubscribe;
}, [navigation]);
return <ProfileContent />;
}
function Profile({ navigation }) {
React.useEffect(() => {
const unsubscribe = navigation.addListener('blur', () => {
//This event is emitted when the screen goes out of focus
// do something
});
return unsubscribe;
}, [navigation]);
return <ProfileContent />;
}