Я использую 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.