【发布时间】:2020-01-06 22:14:30
【问题描述】:
我正在编写一个 React 组件,它将评论总数作为道具。当评论数为0时,我想渲染一个元素说明
<div>No reviews yet.</div>
否则,我会渲染包含评论数据的元素。这是组件及其上下文:
const Stats = ({good, neutral, bad, totalReviews}) => {
if ({totalReviews} === 0)
return <div>No reviews yet.</div>
else {
return (
<div>
<Stat text="Total: " amount={totalReviews} />
</div>
);
}
}
const App = () => {
const [good, setGood] = useState(0);
const [neutral, setNeutral] = useState(0);
const [bad, setBad] = useState(0);
let totalReviews = good + neutral + bad;
return (
<div>
<Stats totalReviews={totalReviews} />
</div>
)
}
我使用debugger 命令在 Chrome 的开发者控制台中检查每个变量的值。它显示totalReviews = 0。变量good, neutral, and bad也都是= 0。
我也用过console.log(totalReviews)。
0 由console.log 显示。为什么我的程序进入第二个条件好像 totalReviews 不是 0?
【问题讨论】:
-
从 totalReviews 中移除 {}
-
您正在将对象
{totalReviews}与数字0进行比较。从{totalReviews}中删除{}。
标签: javascript reactjs jsx equals-operator