私は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
確かに最初のログがtrueとして表示されるはずです。
'{I}をしかし、あなたは' {I} ' – Quentin
あなたのログを記録しません:!
これはおそらく、あなたのコードを修正します'1 === 1'ではなく' 1 === {1} 'である。 – Weedoze
'this.state.activeTab === {i}'を見ると、 '{i}'は数字ではなく、 '{i:i}'という形式のオブジェクトであることが分かります。 –