React Hooks中使用useContext 进行父组件向子组件传值

React Hooks中使用useContext 进行父组件向子组件传值

关于React Hooks中使用useContext 进行父子组件传值(父子组件不在同一个文件中)

1、封装的公共文件

// createContext.js文件

import { createContext } from "react";
const myContext = createContext(null);
export default myContext;

2、父组件

import React, { useState} from "react";
import Counter from './Counter'
import myContext from './createContext'

function App() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <h4>我是父组件</h4>
      <p>点击了 {count} 次!</p>
      <button
        onClick={() => {
          setCount(count + 1);
        }}
      >
        点我
      </button>

      {/* 关键代码 */}
      {/* 提供器 */}
      <myContext.Provider value={count}>
        <Counter />
      </myContext.Provider>
    </div>
  );
}
export default App;

3、子组件

import React, { useContext} from 'react';
import myContext from './createContext'

// 关键代码
function Counter() {
    const count = useContext(myContext);  // 得到父组件传的值
    return (
        <div>
            <h4>我是子组件</h4>
            <p>这是父组件传过来的值:{count}</p>
        </div>
    )
}

export default Counter;