reactjs - 如何将会话详细信息传递给反应中的功能组件?
问题描述
我有一个功能组件,它接受使用 Reactjs 实现的道具。在功能组件内部,我想访问会话 ID(或用户 ID)。因此,我实现了组件如下,
import React from 'react';
import styled from 'styled-components';
import {Link} from "react-router-dom";
import {ProductConsumer} from "../context";
import {connect} from "react-redux";
const mapStateToProps = ({ session}) => ({
session
});
const Product = (props, {session}) => {
const {_id, name, img, price } = props.products;
const addToCartHandler = () => {
const item = {
userId: session.userId,
productId: _id,
name: name,
price: price,
qty: 1
};
props.addToCart(item)
console.log('sent')
};
return (
<ProductWrapper className = "col-9 mx-auto col-md-6 col-lg-3 my-3">
<div className="card">
<ProductConsumer>
{value => (
<div className="img-container p-5 " >
<Link to="/ProductDetails">
<img src={img} alt = "product" className="card-img-top"/>
</Link>
<button className="cart-btn" onClick={addToCartHandler}>
<i className="fas fa-cart-plus"/>
</button>
</div>
)}
</ProductConsumer>
<div className="card-footer d-flex justify-content-between">
<p className="align-self-center mb-0">
{name }
</p>
<h5 className="text-blue font-italic mb-0">
<span className="mr-1">$</span>
{price }
</h5>
</div>
</div>
</ProductWrapper>
);
}
const ProductWrapper = styled.div`
//some css
`
export default connect(
mapStateToProps
)(Product);
当我将功能组件实现为const Product = (props, {session}) => {//rest of the impementation}
时,它接受道具但不获取会话值(它说“未定义”)。当我只通过类似的会话时const Product = ({session}) => {//rest of the impementation}
,它会获取会话详细信息。但是我想将 props 和 session 都传递给组件,但我不明白如何实现它。有人可以帮帮我吗?
解决方案
推荐阅读
- javascript - 有人可以用javascript解释我这个箭头函数吗?
- javascript - “无法读取未定义的属性‘indexOf’”
- powerbi - Dax 衡量标准:每周统计独特的文章
- c# - Unity:从大图到地图/地形/纹理
- c# - 错误:未找到 .NETFramework,Version=v5.0 的参考程序集
- php - Laravel 不读取刀片语法中的数组索引
- javascript - 在打字稿泛型中,“=”运算符的用途是什么
- python - 使用现有 DataFrame 创建匹配表的最佳方法
- discord - 如何让命令提示符在启动时运行 discord bot
- python - 即使输入正确答案,程序也不返回“正确”