我发现React JS后,对Javascript来说还是比较新的,而且我遇到了一个我不明白的问题。Javascript 1 === 1是虚假的
我有以下代码,哪个控制台将两个变量都记录为具有相同值的数字。然而它显示为错误...为什么?
非常感谢您提前。
<Nav tabs>
{
navigation.map((page, i) => {
++i;
var match = this.state.activeTab === { i };
console.log(
typeof(i) + " " + i,
typeof(this.state.activeTab) + " " + this.state.activeTab,
match
);
return (
<NavItem>
<NavLink
className={
classnames({
active: match,
'cursor-pointer': true
})
}
onClick={() => { this.toggleTab({ i }) }}
>
{ page.name }
</NavLink>
</NavItem>
)
})
}
</Nav>
我得到了我的控制台日志中的以下内容:
app.js:89525 number 1 number 1 false
app.js:89525 number 2 number 1 false
app.js:89525 number 3 number 1 false
app.js:89525 number 4 number 1 false
app.js:89525 number 5 number 1 false
app.js:89525 number 6 number 1 false
当然第一个日志应显示为真。
'{I} == i'但你永远不能登录'{I}' – Quentin
你没有做'1 === 1',而是'1 === {1}'。删除括号 – Weedoze
看看'this.state.activeTab === {i}'我可以告诉你'{i}'不是一个数字,而是一个具有以下形式的对象:'{i:i}'。 –