首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >React.JS上下文应用编程接口问题(呈现问题)

React.JS上下文应用编程接口问题(呈现问题)
EN

Stack Overflow用户
提问于 2021-04-19 00:38:59
回答 1查看 70关注 0票数 2

我目前正在尝试实现一个电子商务项目。我的问题是关于上下文API和Reducer。无法呈现产品的价格和其他详细信息。在购物车组件中

Context.Js;Here is my Context.js

Reducer.JsHere is the Reducer.js

我的产品组件代码是;

代码语言:javascript
运行
复制
import './Product.css'
import AddBoxIcon from '@material-ui/icons/AddBox';
import { Context } from "./Context"
import React, {useContext} from "react"




function Product({title,price,image,id}) {

   const {addtoBasket} = useContext(Context)

/*
  function alertUser() {
        alert(`${title} added to your card`)
    }

    function addBasket(){
        console.log(title,price)
    }


    function firedFunctions(){
        alertUser()
        addBasket()
    
    }

*/
    
    return (
        <div className="product">
            <div className="product__info">
                <img src={image} alt=""></img>
                <p className="title">{title}</p>
                <div className ="price__add" >
                    <h4>Price : {price} $</h4>
                    <div onClick={() => addtoBasket(title, price, image,id)}>
                    <AddBoxIcon className="btn" />
                    </div>
                </div>                
            </div>            
        </div>
    )
}

export default Product

我的购物车组件代码是;

代码语言:javascript
运行
复制
import React, {useContext} from 'react'
import './Cart.css'
import {Context} from "./Context"
import Product from "./Product"


function Cart() {

    const {basket} = useContext(Context)
    console.log(basket) // Expected: Empty Array
    return (
        <div className="cart">
            <div className="cart__left">
                <h2>Your Products</h2>
                    <div>
                        {basket.map((product) =>(                          
                            <h4>{product}</h4>
                            {/*why product give me just a title of product*/}
                                                                     
                        ))}
                        
                    </div>

            </div>
            
            <div className="cart__right">
                <h2>Total</h2>
            </div>
        </div>
    )
}

export default Cart

And this is the output when i click the button v.1(console) ;

I want to see Price and image either.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-19 00:53:06

您向addToBasket函数传递了三个参数,但它只接收了一个对象。

也许你需要的是:

代码语言:javascript
运行
复制
<div onClick={() => addtoBasket({title, price, image, id)}>

我刚刚在codesandbox中复制了它,这是正确的答案,看一下:https://codesandbox.io/s/awesome-violet-fr7np?file=/src/index.js

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67150978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档