react-hooks: useContext

2020-07-07  本文已影响0人  前端的爬行之旅

React的useContext应用场景:

如果需要在组件之间共享状态,可以使用useContext()

举个🌰:

场景:现有两个组件Navbar和Messages,希望他们之间共享状态。

<div className="test">
    <Navbar />
    <Messages />
</div>
使用方法如下:

一、在两个组件的父组件上使用React的Context API,及在组件外部建立一个Context。

const TestContext = React.createContext({});
import React from "react";
const TestContext= React.createContext({});
<TestContext.Provider 
    value={{
        username: 'superawesome',
    }}
>
    <div className="test">
        <Navbar />
        <Messages />
    </div>
<TestContext.Provider/>
import React, { useContext } from "react";
const Navbar = () => {
    const { username } = useContext(TestContext);
    return (
        <div className="navbar">
            <p>{username}</p>
        </div>
    )
}

⚠️⚠️⚠️扩展知识:Navbar组件访问context的另一种方式:
组件引入TestContext并调用context,使用TestContext.Consumer(消费者)

import TestContext from "父组件";
const Navbar = () => {
    return (
        <TestContext.Consumer>
            {
                    context => {
                      return (
                        <div> {context.useName} </div>
                      )
                    }
                }
          </TestContext.Consumer>
    )
}

参考链接:

上一篇 下一篇

猜你喜欢

热点阅读