useContext

useContext 使用


第一步:创建store文件夹,下面创建 contentext.js

// 代码

import React from 'react';

const CartContext = React.createContext({

    items: [],

    totalAmount: 0,

    totalPrice: 0,

    addItem: () => {

    },

    removeItem: () => {

    },

    clearCart: ()=>{

    }

});

export default CartContext;


第二步:

在app.js中

mport CartContext from "./store/cart-context";


<CartContext.Provider value={{...cartData, addItem, removeItem, clearCart}}>

            <div>

                <FilterMeals onFilter={filterHandler}/>

                <Meals

                    mealsData={mealsData}

                />

                <Cart/>

            </div>

        </CartContext.Provider>

 注意: CartContext.Provider 是最重要的,这个是相当于全局有了这个就可以将content使用了


调用:比如cart.js 文件中使用

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

import CartContext from "../../store/cart-context";

const ctx = useContext(CartContext);

    console.log("ctx", ctx)

   // 添加一个显示详情页的函数

    const toggleDetailsHandler = () => {

        if (ctx.totalAmount === 0) {

            setShowDetails(false);

            return;

        };

        setShowDetails(prevState => !prevState);

    };

    const showCheckoutHandler = () => {

        if (ctx.totalAmount === 0) return;

        setShowCheckout(true);

    };

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容