CLASSFUNC BLOG

We Share Our Knowledge
Site Search

useContext trong Reactjs (hooks)

phinv54 ✍︎︎ 05-10-2020

Rect context API là một cách cơ bản để tạo các biến toàn cục có thể được truyền qua trong ứng dụng React Context gồm 2 phần là Provider ( cung cấp giá trị ) và Consumer ( sử dụng giá trị ) Tạo context sử dụng createContext để tạo context và giá trị mặc định

import React from 'react'
export const UserContext = React.createContext({})

Tiếp theo viết Provider và truyền dữ liệu xuống

export const UserProvider = ({children}) =>{
    const [user, setUser] = useState({})

    //  lấy thông tin user từ api
    useEffect(()=>{
        fetch("https://randomuser.me/api")
            .then(res=>res.json())
            .then(data=>{
                console.log(data);
                setUser(data.results[0])
            })
            .catch(console.log)
    },[])

    return(
        <UserContext.Provider value={user}>
            {children}
        </UserContext.Provider>
    )
}

sử dụng UserProvider trong file index.js

ReactDOM.render(
    <UserProvider>
        <App/>
    </UserProvider>,
    document.getElementById('root')
);

trong các component con ta lấy giá trị value user bằng useContext ví dụ:

import React , {useContext} from 'react';
import './App.css';
import { UserContext} from "./context/userContext";

function App() {

  const user = useContext(UserContext)
    if(!user.id)
        return <div>loading...</div>
  return (
    <div className="App">
        <p>
          Hi {user.name.title} {user.name.first} {user.name.last }
        </p>

    </div>
  );
}

export default App;

xem thêm :