Kav*_*ara 1 navigation react-native
我想触发一个函数,每次组件在底部导航 react-native 中变为活动选项卡时。有人可以给我一个解决方案吗?
使用focus
在导航事件如下
componentDidMount() {
this.focusListener = this.props.navigation.addListener('focus',
() => alert('Screen focused'))
}
Run Code Online (Sandbox Code Playgroud)
确保删除侦听器
componentWillUnmount() {
this.focusListener.remove();
}
Run Code Online (Sandbox Code Playgroud)
有关额外信息,请查看以下示例
import React, { Component } from "react";
import { Text, View } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
class HomeScreen extends Component {
componentDidMount() {
this.focusListener = this.props.navigation.addListener("focus", () =>
alert("Screen home")
);
}
componentWillUnmount() {
this.focusListener.remove();
}
render() {
return (
<View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
<Text>Home</Text>
</View>
);
}
}
class SettingsScreen extends Component {
render() {
return (
<View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
<Text>Settings</Text>
</View>
);
}
}
const Tab = createBottomTabNavigator();
export default function App() {
return (
<NavigationContainer>
<Tab.Navigator>
<Tab.Screen name="Home" component={HomeScreen} />
<Tab.Screen name="Settings" component={SettingsScreen} />
</Tab.Navigator>
</NavigationContainer>
);
}
Run Code Online (Sandbox Code Playgroud)
希望这对你有帮助。如有疑问,请放心。
归档时间: |
|
查看次数: |
2249 次 |
最近记录: |