uczę React Native i Redux i zacząłem przy użyciu bibliotek 3rd party - specjalnie React NavigationReact-navigation zarządzanie Redux State
I już po tutorial na niej Dan Parker's Medium Tutorial i nadal nie mogę dostać pracy
Moja RootContainer z aplikacji:
<PrimaryNavigation />
...
export default connect(null, mapDispatchToProps)(RootContainer)
definicja PrimaryNavigation:
const mapStateToProps = (state) => {
return {
navigationState: state.primaryNav
}
}
class PrimaryNavigation extends React.Component {
render() {
return (
<PrimaryNav
navigation={
addNavigationHelpers({
dispatch: this.props.dispatch,
state: this.props.navigationState
})
}
/>
)
}
}
export default connect(mapStateToProps)(PrimaryNavigation)
Definicja
PrimaryNav:
const routeConfiguration = {
LoginScreen: {
screen: LoginScreen
},
MainContainer: {
screen: MainContainer
}
}
const PrimaryNav = StackNavigator(
routeConfiguration,
{
headerMode: 'none'
})
export default PrimaryNav
export const reducer = (state, action) => {
const newState = PrimaryNav.router.getStateForAction(action,state)
return newState || state;
}
Moja stworzyć sklep:
const rootReducer = combineReducers({
...
primaryNav: require('../Navigation/AppNavigation').reducer
})
return configureStore(rootReducer, rootSaga)
pojawia się błąd wzdłuż linii:
Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. Check the render method of 'PrimaryNavigation'
Moje zrozumienie tak daleko jest:
- RootContainer jest podłączony do sklepu - to trzyma PrimaryNavigation
- PrimaryNavigation zawiera Navigator (PrimaryNav), owija Żeglarz i przekazuje go stan
- PrimaryNav jest rzeczywista Navigator - Mam zdefiniowane trasy i domyślne inicjacji
- reduktor, który obsługuje PrimaryNav tylko PrimaryNav.router.getStateForAction
Am I brakuje stanu początkowego? Czy nie podłączam go poprawnie do Redux? Czy muszę zwolnić wysyłkę, aby przejść do pierwszego ekranu?
Dzięki
Czy jesteś wymagają 'PrimaryNav' prawidłowo? Powraca jako "niezdefiniowany", więc domyślam się, że jest to proste i wymaga awarii komponentu – Trip