I just started to learn React. I want to use my already built REST api but I've encountered a problem while I was trying to get an user element from my api.
I have a UserServices class that has two axios methods in it, getUserById and getAllUsers.
public static getUserById(id: number): Promise<IUser> {
return new Promise((resolve, reject) => {
axios.get(this.root + id).then((response: any) => {
let character = this.toUser(response.data);
resolve(character);
},
(error: any) => {
reject(error);
});
});
}
My problem is when I try to render my user, because I get nothing.
class App extends React.Component {
user: IUser;
render() {
UsersService.getUserById(2).then(res => this.user = res);
return (
<div className="app">
<User user = {this.user} />
</div>
);
}
}
This is my user component
export interface UserProps {
user: IUser;
}
interface UserState {
myUser: IUser;
}
export class User extends React.Component<UserProps, UserState> {
public static defaultProps: UserProps = {
user: {
name: ''
}
}
constructor(props: UserProps) {
super(props);
this.state = {
myUser: props.user
}
}
render() {
return (
<div>
<span>{this.state.myUser.name}</span>
</div>
);
}
}