javascript - 尽管调试器另有说明,为什么该变量不被视为 0?

标签 javascript reactjs jsx equals-operator

我正在编写一个 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。变量好、中性和坏也都= 0

我还使用过 console.log(totalReviews)console.log 显示 0。为什么我的程序输入第二个条件,就好像 TotalReviews 不为 0?

最佳答案

if (totalReviews === 0)

你只在 jsx 中将 js 语句用大括号括起来,但你的 if 语句只是普通的 js。

关于javascript - 尽管调试器另有说明,为什么该变量不被视为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57781267/

相关文章:

javascript - 如何避免在 map 迭代 block 中创建多个新函数

javascript - setState 意外更新非状态属性

select - React,无法选择<select>的第一个选项

javascript - 在 React 组件的多次嵌套对象上使用 ES6 .map()

javascript - 为什么最好的做法是用括号将分配给变量的 JSX 括起来?

React-Native 滚动时水平滚动跳跃

javascript,绑定(bind) `this` 不起作用

javascript - jqueryUI自动完成菜单展示效果

javascript - 类型 '{}' 不可分配给类型 'ReactNode'

javascript - 获取动态定义的、选中的单选按钮的属性