From dabb98eb7d5e512ed2ddb76271beed24bd934b71 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Wed, 6 Feb 2019 19:52:26 +0300 Subject: useState, useEffect --- vnext/src/components/UserInfo.js | 90 ++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 50 deletions(-) (limited to 'vnext/src/components/UserInfo.js') diff --git a/vnext/src/components/UserInfo.js b/vnext/src/components/UserInfo.js index 3c4ffab3..d772d76e 100644 --- a/vnext/src/components/UserInfo.js +++ b/vnext/src/components/UserInfo.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useState, useEffect } from 'react'; import PropTypes from 'prop-types'; import { Link } from 'react-router-dom'; @@ -12,59 +12,49 @@ import SearchBox from './SearchBox'; import './UserInfo.css'; -export default class UserInfo extends React.Component { - constructor(props) { - super(props); - this.state = { - user: { uname: props.user, uid: 0 } - }; - } - componentDidMount() { - info(this.state.user.uname).then(response => { - this.setState({ - user: response.data - }); - this.props.onUpdate && this.props.onUpdate(response.data); +export default function UserInfo(props) { + const [user, setUser] = useState({ uname: props.user, uid: 0 }); + useEffect(() => { + info(user.uname).then(response => { + setUser(response.data); + props.onUpdate && props.onUpdate(response.data); }); - } - render() { - const { user } = this.state; - return ( - <> -