Как перезагрузить страницу после перехода с другого экрана - PullRequest
2 голосов
/ 24 мая 2019

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

    <View style={{textTransform: 'lowercase'}}><YellowBtn label="Go to 
  Dashboard"
               OnClick={this._redirectCustomerView}/></View>


        _redirectCustomerView = () => {
            this.props.navigation.navigate('UserHome');
          };

// Ниже находится домашняя страница

 export default class App extends React.Component {
      constructor(props) {
        super(props);
        this.state = { title: 'Hello!', hasFooterPermission: false };
        console.log("Valuueeeeeee");
      }

      async componentDidMount() {
        const homeFooter = await hasPermission('clm.360D.fe.restrictedView.allowed');

        this.setState({
          hasFooterPermission: homeFooter
        })
      }

      onSearchClick = () => {
        this.props.navigation.navigate('SubscriberSearch');
      };
      componentWillMount(){
        console.log(" Home page dataaaa");
      }


      render() {
        return (
          <View>
            <ImageBackground source={BG} style={{ width: '100%', height: '100%' }} resizeMode="cover">
              <View  style={{ paddingTop: 5 , alignContent:'space-between',flexDirection:'row'}}>
                <View style={{alignSelf: 'flex-start', flex:1}}>
                  <UserAvatar navigationProps={this.props.navigation} avatarSize={40} isTouchable={true}/>
                </View>
                {/* <View style={{alignSelf: 'flex-end'}}>
                  <Icon
                    name="bell-outline"
                    type="MaterialCommunityIcons"
                    style={{ color: '#FFFFFF' }}
                    onPress={() => Toastr.showToast('No new notifications!', 3000)}
                  />
                </View> */}
              </View>

Ответы [ 3 ]

0 голосов
/ 24 мая 2019

Если вы добавите слушателя на домашнюю страницу с помощью навигационной стойки, вы можете вызвать функцию, когда произойдет переход на домашнюю страницу или с нее ('willFocus' / 'willBlur') или если она завершена ('didFocus' / 'didBlur').Это сработало для меня:

componentDidMount(){
  this.props.navigation.addListener('willFocus',this.load)
}
load = () => {
  //whatever you want to do when the page loads
}

Документация здесь: https://reactnavigation.org/docs/en/navigation-prop.html

0 голосов
/ 24 мая 2019

используйте толчок вместо навигации

this.props.navigation.push('UserHome');
0 голосов
/ 24 мая 2019

Это не обязанность домашней страницы знать, нужно ли обновлять страницу. Предложенный подход заключается в том, что при выполнении условия перезагрузки (обновление аватара, изменения свойств пользователя и т. Д.) Вызывающий объект должен перейти на домашнюю страницу и, если необходимо, запросить перезагрузку (т. Е. window.location.reload(true))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...