У меня есть родительский компонент React, и я использую graphql для импорта моих данных json в качестве реквизита, который будет передан дочерним компонентам.Я пытаюсь использовать состояние для обновления страницы по клику одним из трех объектов в моем файле JSON.
class Work extends React.Component {
constructor(props) {
super(props);
this.state = {
data: []
}
}
componentDidMount(){
this.setState({data: data.dataJson[0]})
console.log(data.dataJson[0])
}
showPsContent() {
this.setState({data: data.dataJson[1]})
}
render() {
console.log(this.props)
const {data} = this.props
console.log(data)
console.log(this.props.data)
return (
<div id='work'>
<NavBar/>
<div className='work-content'>
<div className="side-nav">
<button onClick={() =>
this.showContent(index)}></button>
</div>
<h1 className="work-header"></h1>
<Page data={this.state.data}/>
</div>
</div>
)
}
}
Мне нужно передать данные по номеру индекса другим моим компонентам, чтобы я мог сопоставить их.
Или я должен отобразить массив в родительском массиве, сохранив его и изменив состояние на основе индекса.
Мои данные выглядят так:
{
"workpages": [{
"title": "Escobar",
"body": "is a registered 501(c)3 non-profit",
"link": "https://excaliber.org",
"mission": "https://excaliber.org/about#mission",
"extab": {
"label": "Summary",
"text": "sie empre morter fybes losic masiknd"
}
},
{
"title": "General Assembly",
"body": "sie empre morter fybes losic masiknd",
"link": "https://excaliber.org",
"mission": "https://excaliber.org/about#mission",
"extab": {
"label": "Summary",
"text": "sie empre morter fybes losic masiknd"
}
},