Я не могу обновить значение редуктора в React Native - PullRequest
0 голосов
/ 22 мая 2019

Я использую Redux.Я могу получить данные из API, но когда я пытаюсь обновить редуктор.Он не обновляет его и показывает пустое значение в подпорках.

Я пробовал другой тип кодирования, установив начальное состояние, и попытался также согласовать его с ним.

Основной файл (приложение.js)

const store = configureStore();

export default class App extends Component<Props> {
render() {
    return (
        <Provider store={store}>
            <AppContainer/>
        </Provider>

    );
}
}

Store.js

import {createStore, combineReducers, applyMiddleware, compose} from 'redux';
import authReducer from './src/reducers/authReducer';
import thunk from 'redux-thunk';

const storeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;

const rootReducer = combineReducers({
    user: authReducer,

});
const configureStore = () => {
    return createStore(rootReducer, storeEnhancers(applyMiddleware(thunk)));
};

export default configureStore;

Auth.js

import {USER_AUTH,} from './types';
import api from './../api/auth';

import axios from "axios";

const URL = 'Some URl';


export const login = credentials => (dispatch) =>
    axios.get(URL)
        .then(user => {
            dispatch(userLoggedIn(user))
        }).catch(err => {
        console.log(err, 'er');
    });


export const userLoggedIn = (user) => {

return {
    type: USER_AUTH,
    user
}
};

authReducer.js

import { USER_AUTH } from '../actions/types';
const initialState = {
    user: []
};

const authReducer = (state = initialState, {type, user}) => {

    switch (type) {

        case USER_AUTH:

            // console.log(user) I have data here but not updated when I call it.

            return Object.assign({}, state, {
                user: state.user.concat(user)
            });
        default:
            return state;
    }
};

    export default authReducer;

Файл реагирования

    const mapStateToProps = state => {
    return {
        user: state.user
    }
};

const mapDispatchToProps = dispatch => {
    return {
        login: (credentials) => {
            dispatch(login(credentials))
        }
    }
};

export default connect(mapStateToProps, mapDispatchToProps)(LoginForm)

При нажатии кнопки вызывается следующая функция входа в систему.

this.props.login(credentials);


        console.log(this.props, 'props'); // when I do console user is empty not updated.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...