其他分享
首页 > 其他分享> > React中的context 数据传递

React中的context 数据传递

作者:互联网

1.定义 js文件

import React from 'react'
/**  *  * Context 相当于一个公共的存储空间,  *      我们可以将多个组件中都需要访问的数据统一存储到一个Context中,  *      这样无需通过props逐层传递,即可使组件访问到这些数据  *        *      通过React.createContext()创建context  */
  const TestContext = React.createContext({         name:'孙悟空',         age:18,
    })
  export default TestContext;     2.使用context(一.)   import React from 'react' import TestStore from '../store/testContext.js' export default function TestContext() {   return (     <TestStore.Consumer>         {(ctx)=>{            return (             <div>                 {ctx.name}             </div>            )         }}     </TestStore.Consumer>   ) }   3.使用context(二.使用钩子函数)   import React from 'react' import { useContext } from 'react' import TestStore from '../store/testContext'
export default function TestContext() {     const ctx=useContext(TestStore)      /**      *      * 使用Context方式二:      *      1.导入Context      *      2.使用钩子函数useContext()获取到context      */   return (         <div>
        <h3>{ctx.name}</h3>
    </div>
  ) }   4.通过.Provider value属性 修改Context中的值 子类继承获取修改后的值   import React from 'react' import { useState } from 'react' import Context from '../store/testContext.js' import TestContext from './TestContext.jsx' export default function A() {     const [cartData,setCartData]=useState({         items:[],         totalAmount:0,         totalPrice:0     })
    const addItem=()=>{         const newCart={...cartData}         newCart.totalAmount+=1         setCartData(newCart)     }
    const removeItem=()=>{
    }
  return (     <div>     //父类通过value修改         <Context.Provider value={ {...cartData,age:1300,name:'沙和尚', addItem,removeItem } }>     //子类将接收到 value中修改之后的值
        <TestContext></TestContext>           </Context.Provider>     </div>   ) }

 

标签:传递,const,context,React,react,TestContext,Context,import
来源: https://www.cnblogs.com/daxiong182/p/16391117.html