У меня проблемы с отображением, которое не отображается после изменения состояния магазина.
В промежуточном программном обеспечении ведения журнала я вижу, что действия вызываются правильно и что состояние хранилища имеет новые значения. Если я перехожу на другую страницу с реакции-маршрутизатором, а затем возвращаюсь, пользователи правильно отображаются в магазине, поэтому я знаю, что mapStateToProps
работает.
MyComponent
const mapStateToProps = (state) => {
return {
users: state.users.all
};
};
const actionCreators = {
fetchUsers
};
export class Users extends React.Component<UsersProps, UsersState> {
constructor(props) {
super(props);
this.state = {
// initial values
};
}
componentDidMount() {
this.props.fetchUsers();
}
render() {
// return PrimeReact DataTable with users prop
}
}
export default compose(
withRouter,
connect(mapStateToProps, actionCreators),
injectIntl,
)(Users);
1012 * Действия *
export function fetchUsers() {
return async dispatch => {
const users = await new UserService().users();
return dispatch(receiveUsers(users));
};
}
function receiveUsers(users: User[]) {
return { users, type: RECEIVE_USERS };
}
Редуктор
export default combineReducers({
users
});
function users(state, action) {
switch (action.type) {
case RECEIVE_USERS:
return {
...state,
all: action.users,
};
default:
return state;
}
}
магазин
export default function configureStore(preloadedState) {
const middlewares = [
loggerMiddleware,
thunkMiddleware,
];
const middlewareEnhancer = applyMiddleware(...middlewares);
const store = createStore(reducer, middlewareEnhancer);
return store;
}