使用React中的useContext()函数

useContext是什么意思?

这是一个钩子,可以将属性直接传递给想要传递值的子组件。

如果要将值传递给子组件在孙组件中使用,可以使用useContext直接传递值,避免了通过父组件传递给子组件再传递给孙组件的操作。

オブジェクト / コンポーネント説明ContextオブジェクトReact.createContext()の戻り値ProviderコンポーネントContextオブジェクトが保持しているコンポーネントConsumerコンポーネントuseContext()を利用することで、Contextオブジェクトから値を取得できる

上下文对象

const ContextObj = React.createContext();

又,或者,

import React, { createContext } from 'react';

const ContextObj = createContext();

供应商组件

当您使用Provider进行包装时,您可以在包含包装的组件树中引用value的值。

<ContextObj.Provider
 value={ツリー内で共有可能なコンテキストオブジェクトの値}
>
 <Consumer />
</ContextObj.Provider>

在导入时,使用`useContext`进行加载。

import React, { useContext } from 'react';

const コンテキストオブジェクトの値 = useContext(コンテキストオブジェクト);

使用useContext的方法

import React, { createContext, useContext } from 'react';

const ContextObj = createContext();

const Consumer = () => {
  const message = useContext(ContextObj);
  console.log(message);

  return <p>{message}</p>;
};

const message = 'React useContext';

export default function App() {
  return (
    <>
      <ContextObj.Provider value={message}>
        <Consumer />
      </ContextObj.Provider>
    </>
  );
};

使用useContext从Context对象中获取值,并将其存储在变量message中。

const message = useContext(ContextObj);

消息将在Provider组件中以value属性指定的值接收。

const message = 'React useContext';

export default function App() {
  return (
    <>
      <ContextObj.Provider value={message}>
        <Consumer />
      </ContextObj.Provider>
    </>
  );
};

我认为屏幕上会显示”React useContext”。

我想试试把文件进行分割的情况。

广告
将在 10 秒后关闭
bannerAds