array.map प्रतिक्रियाओं में काम नहीं कर रहा है - जावास्क्रिप्ट, सरणी, प्रतिक्रिया, मैपिंग

मेरी सरणी tabList मैप नहीं हो रहा है <li> टैग जो मुझे चाहिए। मैंने गलत क्या किया।

import React, { Component } from "react"
// import NeilProfile from "./neil-profile.jpg"
import Expertise from "./expertise"
import Work from "./work"
import Activity from "./activity"

export class Bottom extends Component {

constructor (props) {
super(props)
this.state = { currentTab: 1 }
this.changeTab = this.changeTab.bind(this)
}

changeTab (id) {
this.setState({ currentTab: id })
}

render () {

const tabList = [
{ "id": 1, "name": "Work" },
{ "id": 2, "name": "Expertise" },
{ "id": 3, "name": "Activity"}
]

return (
<div className="profile-bottom">
<header>
<ul className="profile-bottom__tab-navigation">

{tabList.map(function(tab) {
<li key={tab.id} className={(this.state.currentTab === tab.id) ? "active" : null}>
<a onClick={() => this.changeTab(tab.id)} >
{tab.name}
</a>
</li>
}.bind(this))}

</ul>

<div className="profile-bottom__filter">
<p>Show only: <span>Articles</span></p>
</div>
</header>
<div className="profile-bottom__content">
{this.state.currentTab === 1 ?
<Work />
:null}

{this.state.currentTab === 2 ?
<Expertise />
:null}

{this.state.currentTab === 3 ?
<Activity />
:null}

</div>
</div>
)
}
}

export default Bottom

उत्तर:

उत्तर № 1 के लिए 1

आप मानचित्र फ़ंक्शन में वापसी खो रहे हैं। इस तरह अपना नक्शा फ़ंक्शन अपडेट करें -

return (<li key={tab.id} className={(this.state.currentTab === tab.id) ? "active" : null}>
<a onClick={() => this.changeTab(tab.id)} >
{tab.name}
</a>
</li>)

जवाब के लिए 0 № 2

किसी को भी आजमाएं

{
tabList.map(tab =>
<li key={tab.id} className={(this.state.currentTab === tab.id) ? "active" : null}>
<a onClick={() => this.changeTab(tab.id)} >
{tab.name}
</a>
</li>
}

या

{
tabList.map(tab => {
return (
<li key={tab.id} className={(this.state.currentTab === tab.id) ? "active" : null}>
<a onClick={() => this.changeTab(tab.id)} >
{tab.name}
</a>
</li>
)}
}

संबंधित सवाल
सबसे लोकप्रिय