Я подключил компоненты Home с методом действия и успешно отправил редуктор.Кажется, что все работает нормально, я вижу, как данные API поступают в редуктор в консоли.
Проблема в том, что реакция не перерисовывается ProfileGroupsWidget .this.props.user всегда находится в {} в этом дочернем компоненте, я ожидал, что он будет {name: "John Doe"}
Вот userReducer , "GET_AUTH_USER_SUCCESS" взято из getAuthenticatedUser :
const initialState = {};
const userReducer = (state = initialState, action) => {
switch (action.type) {
case 'GET_AUTH_USER_SUCCESS':
console.log('Output:', action.user); // {name: "John Doe"}
state = action.user
return state;
default:
return state
}
}
export {userReducer}
Дом - это мой Домашний компонент :
import React, { Component } from 'react';
import ProfileGroupsWidget from './Widgets/ProfileGroupsWidget.js'
import {connect} from 'react-redux'
import {userActions} from "../_actions/userActions";
class Home extends Component{
constructor(props) {
super(props);
this.state = {
user: this.props.user
}
this.props.getAuthenticatedUser();
}
render() {
return (
<ProfileGroupsWidget user={this.state.user}></ProfileGroupsWidget>
)
}
}
const mapStateToProps = state => {
return state
}
function mapDispatchToProps(dispatch){
return {
getAuthenticatedUser : () => {dispatch(userActions.getAuthenticatedUser())}
}
}
// Connect Home component props with store data:
export default connect(mapStateToProps, mapDispatchToProps)(Home);