Javascript 反应本机:单击选项卡时重新渲染组件
我正在使用React导航,并试图在单击选项卡时强制重新呈现组件(以及Javascript 反应本机:单击选项卡时重新渲染组件,javascript,reactjs,react-native,react-navigation,Javascript,Reactjs,React Native,React Navigation,我正在使用React导航,并试图在单击选项卡时强制重新呈现组件(以及getData()函数) 我试着跟着,但运气不好 路由器 export const Tabs = TabNavigator( { Progress: { screen: ProgressStack, navigationOptions: ({ navigation }) => ({ tabBarLabel: 'Progress', tabBarIcon: ({ tintCol
getData()
函数)
我试着跟着,但运气不好
路由器
export const Tabs = TabNavigator(
{
Progress: {
screen: ProgressStack,
navigationOptions: ({ navigation }) => ({
tabBarLabel: 'Progress',
tabBarIcon: ({ tintColor }) =>
<Icon name="trending-up" size={25} color={tintColor} />
}),
},
export const ProgressStack = StackNavigator({
Progress: {
screen: ProgressScreen,
navigationOptions: ({ navigation }) => ({
title: 'Progress',
}),
},
});
我没有尝试过,但我认为这可能是正确的方法: 使用该高阶组件传递一个
isfocusedtop
,然后使用componentdiddupdate
调用getData
componentDidUpdate (previousProps) {
if (!previousProps.isFocused && this.props.isFocused) {
this.getData()
}
}
您还可以使用onPress按钮事件:,但这需要一种方法来触发您正在进行的数据调用。如果您使用的是redux,则需要通过route参数传递dispatch或绑定操作函数。您好,谢谢您的回复。我是否需要使用此解决方案对我的
路由器
进行任何修改,还是只需加入您包含的生命周期方法?(不幸的是,我目前没有使用Redux)。不需要更改路由器。导出进度的位置:使用导航焦点导出默认值(进度)
。然后检查我上面描述的道具。这不依赖于redux工作:)
componentDidUpdate (previousProps) {
if (!previousProps.isFocused && this.props.isFocused) {
this.getData()
}
}