node.js - 布尔值不会被子常量继承
问题描述
我正在尝试通过 showRemoveFromCart 读取 removefromcart 的值,但它不起作用,它没有呈现从购物车中删除按钮。但由于某种原因,我可以读取 addtoCart 的值,但不能读取 removefromcart。我认为这段代码应该可以工作,但 Visual Studio 代码说 removefromcart 的值已声明但从未读取。
import ImageHelper from "./helper/ImageHelper"
import {Redirect} from "react-router-dom"
import { addItemToCart, removeItemFromCart } from "./helper/cartHelper"
const isAuthenticated = true
const Card = ({product, addtoCart = true, removefromcart = true}) => {
const cartTitle = product ? product.name : "A photo from pexels"
const cartDescription = product ? product.description : "Default description"
const cartPrice = product ? product.price : "Default"
const addToCart = () => {
if (isAuthenticated) {
addItemToCart(product, () => {})
console.log("Added to cart")
}
else {
console.log("Login please")
}
}
const getAredirect = (redirect) => {
if (redirect) {
return <Redirect to="/cart"/>
}
}
const showAddToCart = addtoCart => {
return (
addtoCart && (<button
onClick={addToCart}
className="btn btn-block btn-outline-success mt-2 mb-2"
>
Add to Cart
</button>)
)
}
const showRemoveFromCart = removefromcart => {
return (
removefromcart && (
<button
onClick={() => {
removeItemFromCart(product._id)
console.log("Product removed")
}}
className="btn btn-block btn-outline-danger mt-2 mb-2"
>
Remove from cart
</button>
)
)
}
return (
<div className="card text-white bg-dark border border-info ">
<div className="card-header lead">{cartTitle}</div>
<div className="card-body">
<ImageHelper product={product}/>
<p className="lead bg-success font-weight-normal text-wrap">
{cartDescription}
</p>
<p className="btn btn-success rounded btn-sm px-4">{cartPrice}</p>
<div className="row">
<div className="col-12">
{showAddToCart(addtoCart)}
</div>
<div className="col-12">
{showRemoveFromCart()}
</div>
</div>
</div>
</div>
);
};
export default Card ```
解决方案
您在此行重新声明removefromcart作为函数的参数:
const showRemoveFromCart = removefromcart => {
由于您在没有任何参数的情况下调用此函数,因此您的代码中的条件永远不会满足。您可以将函数更改为不使用任何参数,它应该可以工作。
const showRemoveFromCart = () => {
推荐阅读
- c++ - C++升级到VS2017:关于模糊调用的错误C2668
- docker - CRON 作业找不到在 docker-compose 中设置的环境变量
- liferay - 在 Liferay DXP 中部署时出现 Class Cast 异常
- azure-devops - 将 Azure Active Directory 连接到 VSTS 失败
- sql-server - 插入的更新输出 #temp 查询挂在产品上
- c# - 如何获取具有可选值 minOccurs=0 的 xml 元素
- xml - 错误“cvc-elt.1:找不到元素 'xs:schema' 的声明。” 在日食中
- sql - Oracle Sql - 我有两个表,需要使用 table2 的结果过滤 table1。如果 table2 为空,我需要返回所有 table1
- c# - 如何从 XML 中获取内部值
- deep-learning - MxNet 中内置的 VGG16 网络不工作