Есть коллекция в состоянии users и коллекция auth.user с авторизованным пользователем.
Попробовал написать селектор для запроса из users запросить авторизованного пользователя.
Но почему то возвращает undefined...
export const state = state => state;
export const getCurrentUser = createSelector(state, state => {
return state["users"].entities.forEach(user => {
if (user.email === state["auth"].user.email) {
return user;
}
});
});
class User extends React.Component {
getDate(date) {
return new Date(date);
}
render() {
console.log(this.props.user.uid); // 2 раза выводит undefined.
return (
<div>
<h1>Информация о пользователе</h1>
<hr/>
{
!this.props.loaded
? <Loader />
: <table className="table table-hover">
<tbody>
<tr><th>Имя:</th><td> { this.props.user.name }</td></tr>
<tr><th>Почта:</th><td> { this.props.user.email }</td></tr>
<tr><th>Телефон:</th><td> { this.props.user.phone }</td></tr>
<tr><th>Адрес:</th><td> { this.props.user.address }</td></tr>
<tr><th>Потраченная сумма:</th><td> { this.props.user.totalSpend } тенге</td></tr>
<tr><th>Количество заказов:</th><td> { this.props.user.ordersCount }</td></tr>
<tr><th>Дата регистрации:</th><td> { this.getDate(this.props.user.registeredAt).toLocaleString("ru") }</td></tr>
</tbody>
</table>
}
</div>
);
}
}
export default connect(
state => ({
loaded: state["users"].loaded,
user: getCurrentUser(state) // state["users"].entities.valueSeq().toArray()[0] так получается пользователя взять, но нужно именно авторизованного
})
)(User);