Компонент рендерит один раз, когда нажимает на вкладку «олобца »в реагировать на натив - PullRequest
0 голосов
/ 07 января 2019

Я новичок в реагировании на проблему с вызовом компонента. Всякий раз, когда вы нажимаете на вкладку навигатора ящиков, компонент компонента рендерит первый раз, и API вызывается, но когда вы возвращаетесь на домашнюю страницу, и снова вызываете этот компонент, API не вызывается. Я хочу вспомнить эту функцию.

Вот мой код навигатора ящика:

const AppDrawerNavigator = createDrawerNavigator({
  Home: {
    screen: Home,
    navigationOptions: {
      drawerLabel: 'Home',
      drawerIcon: () => (
        <Icon name="home" size={20} color="#0f1f7b" />
        )
    },
  },
  PreviousInspection: {
    screen: PreviousInspection,
    navigationOptions: {
      drawerLabel: 'Previous Inspection',
      drawerIcon: () => (
        <Icon name="file" size={20} color="#0f1f7b" />
        )
    },
  },
  Logout: {
    screen: Logout,
    navigationOptions: {
        drawerLabel: 'Logout',
        drawerIcon: () => (
          <Icon name="sign-out" size={20} color="#0f1f7b" />
          )
    },
  }
},
{
  drawerBackgroundColor: "#fff",
  contentOptions: {
    activeTintColor: '#000',
    inactiveTintColor: '#000',
    activeBackgroundColor: '#bfc7f3',
    itemStyle: {
      fontSize: 12,
    },
  },
});

1 Ответ

0 голосов
/ 07 января 2019

реагирует на навигацию с HOC withNavigationFocus, который обеспечивает поддержку isFocused для вашего компонента. Вы можете использовать это, чтобы определить, когда определенный экран стал видимым.

import { withNavigationFocus } from 'react-navigation';

class YourScreen extends React.Component {

  render() {
     ...
  }

  componentDidUpdate(prevProps) {
    if (this.props.isFocused && !prevProps.isFocused) {
      // Screen has now come into focus, call your method here 
    }
  }

}

export default withNavigationFocus(YourScreen)
...