Реагировать на собственный Wix Navigation.push возможное необработанное отклонение обещания: Ошибка: не удалось выполнить команду стека - PullRequest
0 голосов
/ 13 декабря 2018

Реагирует на собственный Wix Navigation.push возможное необработанное отклонение обещания: Ошибка: не удалось выполнить команду стека

Login.js

signUpLink =(screenName) => {


          Navigation.push(this.props.componentId, {
  component: {
    name: screenName,
  }
});


    }

 <TouchableOpacity style={styles.buttonText}   onPress={this.signUpLink('videostreme.SignUpScreen')}>
                <Text style={styles.signUpText} >First time here?? Sign Up</Text>
                </TouchableOpacity>

index.js

Navigation.registerComponent('videostreme.LoginScreen', () => Login);
Navigation.registerComponent('videostreme.MainScreen', () => Main);
Navigation.registerComponent('videostreme.SignUpScreen', () => SignUp);
Navigation.registerComponent('videostreme.SplashScreen', () => Splash);

Navigation.events().registerAppLaunchedListener(() => {
  Navigation.setRoot({
    root: {
     stack: {
         children: [
         {
             component: {
                 name: 'videostreme.MainScreen'
             }
         },

         ]
     }
    }
  })
})

Как справиться с этим обещанием (Navigation.push), у кого-нибудь есть идеи по этому поводу?

1 Ответ

0 голосов
/ 10 апреля 2019

Это работает, когда я дал componentId напрямую вместо this.props.componentId (это не определено, когда я его утешаю).Так что я прямо даю componentId,

redirectPageHandler = screenName => {
  Navigation.push('login', {
   component: {
      name: screenName
   }
  });
}

Причина, по которой this.props.componentId не определена, заключается в том, что нам нужно передать реквизиты из родительского компонента.

Myдочерний компонент Логин и родительский компонент Приложение

App.js

render() {
  return (
   <Login {...this.props} />
  )
}

Теперь мы можем использовать this.props.componentId в дочернем компоненте

Login.js

redirectPageHandler = screenName => {
  Navigation.push(this.props.componentId, {
   component: {
      name: screenName
   }
  });
}
...