react18使用useContext举行跨组件传参

打印 上一主题 下一主题

主题 878|帖子 878|积分 2634

contexts.js


  1. import { createContext, useState } from "react";
  2. const MyContext = createContext();
  3. const MyContextProvider = ({ children }) => {
  4.   const [value, setValue] = useState(0);
  5.   const setNewValue = (newValue) => {
  6.     setValue(newValue);
  7.   };
  8.   return (
  9.     <MyContext.Provider value={{ value, setNewValue }}>
  10.       {children}
  11.     </MyContext.Provider>
  12.   );
  13. };
  14. export { MyContext, MyContextProvider };
复制代码
根组件


  1. import React from "react";
  2. import { MyContextProvider } from "./contexts";
  3. import Son from "./pages/Son";
  4. function App() {
  5.   return (
  6.     <div className="App">
  7.       <MyContextProvider>
  8.         <Son />
  9.       </MyContextProvider>
  10.     </div>
  11.   );
  12. }
  13. export default App;
复制代码
父组件


  1. import React from "react";
  2. import Sun from './Sun'
  3. function Son() {
  4.   return (
  5.     <div>
  6.       <Sun/>
  7.     </div>
  8.   );
  9. }
  10. export default Son;
复制代码
子组件


  1. import React,{useContext} from "react";
  2. import {MyContext} from '../contexts'
  3. function Sun() {
  4.   const {value,setNewValue} = useContext(MyContext)
  5.   return (
  6.     <div>
  7.        <button onClick={()=>{setNewValue(value + 1)}}>{value}</button>
  8.     </div>
  9.   );
  10. }
  11. export default Sun;
复制代码
注:本人前端小白 ,如有不对的地方还请多多指教



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

老婆出轨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表