Почему мой пользователь.реквизит всегда неопределенный? Реагировать родной и возвращение


Я работаю с React-Native и Redux.

Мне нужно получить доступ к моей пользовательской реагируют на возвращение после действий. Я пытаюсь сделать это с помощью простой консоли.войдите после действия на моем компоненте (консоль.журнал (это.реквизит.Пользователь)) но это всегда неопределенно.

Это мой комбайн редуктор:

import { combineReducers } from 'redux'; import User from './userReducer';

export default combineReducers({
    User });

Это мой редуктор пользователя:

import {
    REGISTER_USER,
    SIGNIN_USER } from '../types';

export default function(state=INITIAL_STATE, action){
    switch(action.type){

       case  SIGNIN_USER:
       return {
        ...state,
        userData:{
                 uid: action.payload.localId || false,
                 token: action.payload.idToken || false,
                 refreshToken: action.payload.refreshToken || false,
        }
    };
    break;

        default:
            return state
    } }

Это мое действие:

export function signIn(data){
    const request = axios({
        method:'POST',
        url:SIGNIN, 
        data:{
            email: data.email,
            password: data.password,
            returnSecureToken:true 
        },
        headers:{
            "Content-Type":"application/json"
        }
        }).then(response => {
            return response.data
        }).catch( e=> {
            console.log(e)
        });

    return {
        type: SIGNIN_USER,
        payload: request
    }
}

Компонент, где я пытаюсь получить состояние после действие:

import { connect } from 'react-redux';
import { signIn } from '../Store/Actions/userActions';
import { bindActionCreators } from 'redux';


class LoginComponent extends React.Component {


 state = {
    email:'',
    password:''
  };

      signInUser () {

        try {
          this.props.signIn(this.state).then( () => {
           **console.log(this.props.User)**
          })
        } catch (error) {
          console.log(error)
        }
      }

}

const mapStateToProps = (state) => {
  return{
    User: state.User
  }
}

const mapDispatchToProps =( dispatch ) => {
  return bindActionCreators({signIn}, dispatch)
}

export default connect(mapDispatchToProps,mapDispatchToProps)(LoginComponent);

Ответ на log просто таков: undefined

В чем моя ошибка?? Спасибо!

1 2

1 ответ:

Порядок аргументов, которые вы передаете в метод connect, неверен, он ожидает, что mapStateToProps первый и mapDispatchToProps второй параметр. Поэтому ваш код должен быть export default connect(mapStateToProps, mapDispatchToProps)(LoginComponent);

Вот подпись

connect([mapStateToProps], [mapDispatchToProps], [mergeProps], [options])