У меня есть пример приложения React
, которое показывает проекты на домашней странице. Я создал компоненты как Index
> Projects
> Project
:
Мой код в Index.js
:
class App extends React.Component {
render() {
return (
<Router>
<div>
<Header/>
<Projects/>
<Footer/>
</div>
</Router>
);
}
}
Мой код в Projects.js
:
export class Projects extends React.Component {
constructor(props) {
super(props);
this.state = {
projects: [
{
name: "Smithsonian Institute",
desc: "Description goes here",
img: "https://mir-s3-cdn-cf.net//max_1200/da.jpg"
},
{
name: "Beauty Inc Next Dimension",
desc: "Description goes here",
img: "https://mir-s3-cdn-cf.net/15d.jpg"
},
{
name: "Beyond the Pale Blue Dot",
desc: "Description goes here",
img: "https://mir-s3-cdn-cf.net/5e22.jpg"
}
]
};
}
render() {
return (
<Project data={this.state.projects} />
);
}
};
Мой код в Project.js
:
export class Project extends React.Component {
render() {
return (
<section className="projects bg-ash">
{this.props.data.map((item,i)=>
<div className="container work-item" key={i}>
<div className="row justify-content-center align-items-center">
<div className="col-12 col-md-6 col-lg-5">
<a href=""><img src={item.img} className="img-fluid rounded" alt={item.name}/></a>
</div>
<div className="col-12 col-md-6 col-lg-5 image-box">
<h5>{item.name}</h5>
<p>{item.desc}</p>
</div>
</div>
</div>
)}
</section>
);
}
};
Мне нужно иметь этот this.state = { projects: [] }
объект данных в index.js
и передать его через Projects.js
в Project.js
.
Основная цель - управлять состоянием без Redux . Каков наилучший способ сделать это?