После того, как я получил восстановленный результат от API, нужно перейти к экрану «Настройки», приведенный ниже код работает нормально, но навигация не работает и ничего не происходит. Но это работает, исключение не выбрасывается.
App.js
import React, { Component } from 'react';
import { Platform, StyleSheet, Text, View } from 'react-native';
import { Provider } from 'react-redux'
import { createStore, applyMiddleware } from 'redux'
import reducers from './src/reducers'
import thunk from 'redux-thunk'
import AppNavigator from './src/screens/AppNavigator'
const store = createStore(reducers, applyMiddleware(thunk));
export default class App extends Component {
render() {
return (
<Provider store={store}>
<View style={styles.container}>
<AppNavigator />
</View>
</Provider>
);
}
}
appnavigator.js
import { createStackNavigator, createAppContainer } from 'react-navigation'
import HomeScreen from '../screens/HomeScreen'
import SettingsScreen from '../screens/SettingsScreen'
import { Login } from '../components/Login'
import Settings from './SettingsScreen'
const AppNavigator = createStackNavigator({
Home: {
screen: HomeScreen,
navigationOptions: ({ navigation }) => ({ header:null })},
Settings: SettingsScreen,
Login: Login,
})
export default createAppContainer(AppNavigator);
action.js
import { SHOW_LOADER, AUTH_LOGIN, AUTH_FAIL, ERROR } from './ActionTypes'
import axios from 'axios'
import { NavigationActions } from 'react-navigation';
import Base64 from "../utils/Base64";
const onSuccess = (response, dispatch) => {
const {Username} = Base64.decoder(response.data)
if(Username) {
dispatch(NavigationActions.navigate({
routeName: 'Settings',
}));
}else{
dispatch({ type: AUTH_FAIL, payload: "Kullanici bilgileri bulunamadi" });
}
dispatch({ type: SHOW_LOADER, payload: false });
}
const onError = (err, dispatch) => {
dispatch({ type: ERROR, payload: err.response.data });
dispatch({ type: SHOW_LOADER, payload: false });
}
export const SignInUser = (username, password) => async dispatch => {
try {
dispatch({ type: SHOW_LOADER, payload: true });
let auth = {
headers: {
Authorization: 'Basic ' + Base64.btoa(username + ":" + password)
}
}
const response = await axios.post("http://192.168.0.27:81/SignIn", {}, auth);
onSuccess(response, dispatch);
} catch (error) {
onError(error,dispatch);
}
}