MERN:根据条件显示按钮
MERN: show buttons based on conditional
我正在使用 React.JS 并试图根据变量的状态显示一组按钮,这是代码片段:
const cartContentButtons = (
<button className={classes["button--alt"]} onClick={props.onClose}>Close</button> &&
<button className={classes["button--alt"]} onClick={orderHandler}>Order's Details</button>
);
const orderDetailsButtons = (
<button className={classes["button--alt"]} onClick={props.onClose}>Close</button> &&
<button className={classes["button--alt"]} onClick={orderHandler}>Cart's Content</button> &&
<button className={classes["button--alt"]} onClick={orderHandler}>Order's Checkout</button>
);
const modalActions = (
<div className={classes.actions}>
!isCheckout && hasItems ? cartContentButtons : orderDetailsButtons;
</div>
);
但是,在代码执行期间,结果是这样的:
我缺少什么才能正确显示按钮?
非常感谢
您忘记在您的条件中包含方括号,每当您想要基于某种逻辑或非组件的内容呈现时,您应该将其包含在方括号中
const cartContentButtons = (
<button className={classes["button--alt"]} onClick={props.onClose}>Close</button> &&
<button className={classes["button--alt"]} onClick={orderHandler}>Order's Details</button>
);
const orderDetailsButtons = (
<button className={classes["button--alt"]} onClick={props.onClose}>Close</button> &&
<button className={classes["button--alt"]} onClick={orderHandler}>Cart's Content</button> &&
<button className={classes["button--alt"]} onClick={orderHandler}>Order's Checkout</button>
);
const modalActions = (
<div className={classes.actions}>
// include brackets here
{!isCheckout && hasItems ? cartContentButtons : orderDetailsButtons}
</div>
);
看看 react docs 了解更多。
您必须将条件语句括在花括号中并删除末尾的分号。
<div className={classes.actions}>
{!isCheckout &&
hasItems ? cartContentButtons : orderDetailsButtons
}
</div>
我正在使用 React.JS 并试图根据变量的状态显示一组按钮,这是代码片段:
const cartContentButtons = (
<button className={classes["button--alt"]} onClick={props.onClose}>Close</button> &&
<button className={classes["button--alt"]} onClick={orderHandler}>Order's Details</button>
);
const orderDetailsButtons = (
<button className={classes["button--alt"]} onClick={props.onClose}>Close</button> &&
<button className={classes["button--alt"]} onClick={orderHandler}>Cart's Content</button> &&
<button className={classes["button--alt"]} onClick={orderHandler}>Order's Checkout</button>
);
const modalActions = (
<div className={classes.actions}>
!isCheckout && hasItems ? cartContentButtons : orderDetailsButtons;
</div>
);
但是,在代码执行期间,结果是这样的:
我缺少什么才能正确显示按钮?
非常感谢
您忘记在您的条件中包含方括号,每当您想要基于某种逻辑或非组件的内容呈现时,您应该将其包含在方括号中
const cartContentButtons = (
<button className={classes["button--alt"]} onClick={props.onClose}>Close</button> &&
<button className={classes["button--alt"]} onClick={orderHandler}>Order's Details</button>
);
const orderDetailsButtons = (
<button className={classes["button--alt"]} onClick={props.onClose}>Close</button> &&
<button className={classes["button--alt"]} onClick={orderHandler}>Cart's Content</button> &&
<button className={classes["button--alt"]} onClick={orderHandler}>Order's Checkout</button>
);
const modalActions = (
<div className={classes.actions}>
// include brackets here
{!isCheckout && hasItems ? cartContentButtons : orderDetailsButtons}
</div>
);
看看 react docs 了解更多。
您必须将条件语句括在花括号中并删除末尾的分号。
<div className={classes.actions}>
{!isCheckout &&
hasItems ? cartContentButtons : orderDetailsButtons
}
</div>