如何使用 React Context API 通过点击项目的信息改变状态

How to alter state with information from clicked item using React Context API

需要导航并显示已单击项目的产品详细信息。我的控制台日志中返回了正确的项目,但不确定如何 edit/set 声明并用单击项目的值替换虚拟文本。我正在使用内容 API 进行状态管理,数据来自导入到我的 Context.js.

中的单独文件

Context.js

import React, { useState, createContext } from 'react';
import { storeProducts, detailProduct } from './data';

export const ProductContext = createContext();

export const ProductProvider = (props) => {

    const [ products ] = useState(storeProducts);
    const [ dummyDetails ] = useState(detailProduct);

    const getItem = (id) => {
    const product = products.find(item => item.id === id);
    return product;
    }

    const showDetails = (id) => {
        const product = getItem(id);
        console.log(product);
        console.log(dummyDetails);
    };

    const addToCart = (id) => {
    console.log(id);
    };


    return (
        <ProductContext.Provider value={[ products, dummyDetails, showDetails, addToCart ]}>
        { props.children }
        </ProductContext.Provider>
    );
}

我从 getItem 函数返回了我的信息,showDetails 中的 2 console.logs 为我提供了虚拟详细信息和产品详细信息。我需要将产品换成虚拟详细信息。提前致谢。

您可以通过函数 return 从 useState

设置产品
const [ dummyDetails, setProduct ] = useState(detailProduct);

const showDetails = (id) => {
   const product = getItem(id);
   setProduct(product);
};