老婆出轨 发表于 2025-2-25 08:15:28

react18使用useContext举行跨组件传参

contexts.js

https://i-blog.csdnimg.cn/direct/931c59c08ccd4db4af0dc58d04401d91.png
import { createContext, useState } from "react";

const MyContext = createContext();

const MyContextProvider = ({ children }) => {
const = useState(0);
const setNewValue = (newValue) => {
    setValue(newValue);
};
return (
    <MyContext.Provider value={{ value, setNewValue }}>
      {children}
    </MyContext.Provider>
);
};

export { MyContext, MyContextProvider }; 根组件

https://i-blog.csdnimg.cn/direct/9d70d90df3b44355b84daf88b92b04cb.png
import React from "react";
import { MyContextProvider } from "./contexts";
import Son from "./pages/Son";

function App() {
return (
    <div className="App">
      <MyContextProvider>
      <Son />
      </MyContextProvider>
    </div>
);
}

export default App;
父组件

https://i-blog.csdnimg.cn/direct/f69b8de8986a4b4692cabc155bb03643.png
import React from "react";
import Sun from './Sun'

function Son() {
return (
    <div>
      <Sun/>
    </div>
);
}

export default Son;
子组件

https://i-blog.csdnimg.cn/direct/2daa8744b615467192c6f5f5ce8ec3b5.png
import React,{useContext} from "react";
import {MyContext} from '../contexts'

function Sun() {
const {value,setNewValue} = useContext(MyContext)
return (
    <div>
       <button onClick={()=>{setNewValue(value + 1)}}>{value}</button>
    </div>
);
}

export default Sun; 注:本人前端小白 ,如有不对的地方还请多多指教



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: react18使用useContext举行跨组件传参