Почему мой пользователь.реквизит всегда неопределенный? Реагировать родной и возвращение
Я работаю с 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 ответ:
Порядок аргументов, которые вы передаете в метод
connect
, неверен, он ожидает, чтоmapStateToProps
первый иmapDispatchToProps
второй параметр. Поэтому ваш код должен бытьexport default connect(mapStateToProps, mapDispatchToProps)(LoginComponent);
Вот подпись
connect([mapStateToProps], [mapDispatchToProps], [mergeProps], [options])