Я только что обновил RNN до версии 2, и я застрял с моим первым нажатием
Я получаю ошибку:
undefined is not an object (evaluating '_reactNativeNavigation.default.push')
другие ответы о переполнении стека мне мало помоглидо сих пор
Я полагаю, что моя проблема связана с this.props.componentId
, но я также не смог найти никакой помощи в официальном документе.
или, возможно, это неправильный вызов стекатак как я никогда не использую свойство id, установленное в App.js
, мне также интересно, нужно ли указывать идентификатор вручную для каждого экрана или, как сказано в документе, это будет сделано автоматически RNN
если кто-то может мне помочь, я немного растерялся -_-
мой код:
App.js
import { Navigation } from 'react-native-navigation';
import { Provider } from 'react-redux';
import LandingScreen from './src/screens/Landing/Landing';
import AuthScreen from './src/screens/Auth/Auth';
import configureStore from './src/store/configureStore';
import strings from './src/global/strings';
const store = configureStore();
// Landing
Navigation.registerComponentWithRedux(strings.screens.screenLanding, () => LandingScreen, Provider, store);
// Auth
Navigation.registerComponentWithRedux(strings.screens.screenAuth, () => AuthScreen, Provider, store);
// Start App
Navigation.events().registerAppLaunchedListener(() => {
Navigation.setRoot({
root: {
stack:{
id:"appStack",
children: [
{
component: {
name: strings.screens.screenLanding,
options: {
topBar:{
title:{
text:"Welcome"
}
}
}
}
}
]
},
}
});
});
Landing.js
import React, { Component } from 'react';
import { View, Button } from 'react-native';
import Navigation from 'react-native-navigation';
import strings from '../../global/strings';
class Landing extends Component {
goToScreen = (screenName) => {
Navigation.push(this.props.componentId, {
component: {
name: screenName
}
})
}
render() {
return (
<View>
<Button
title="Connexion"
onPress={() => this.goToScreen(strings.screens.screenAuth.toString())}
/>
</View>
)
}
}
export default Landing;