Я не могу найти способ получать переход css для элемента каждый раз, когда он создается в React. Я создал простое приложение с несколькими компонентами и контекстом в React. Я бы хотел, чтобы для каждого создаваемого компонента "Project" был установлен переход непрозрачности ... Но я не могу понять, как это сделать. Мне удается менять класс каждый раз, когда я нажимаю на компонент «Проект», но мне бы хотелось переходить каждый раз, когда я его создаю. Стоит ли где-нибудь использовать setTimeOut? Следует ли мне использовать useEffect?
Вот мой код:
// This is my Context
import React, { createContext, useState, useEffect } from "react";
export const Context = createContext();
export const ContextProvider = (props) => {
const [currentProjects, setCurrentProjects] = useState(() => {
const localData = localStorage.getItem("currentProjects");
return localData ? JSON.parse(localData) : [];
});
useEffect(() => {
localStorage.setItem("currentProjects", JSON.stringify(currentProjects));
console.log("currentProjects got updated");
}, [currentProjects]);
return (
<Context.Provider value={[currentProjects, setCurrentProjects]}>
{props.children}
</Context.Provider>
);
};
// Это мой компонент ProjectList
import React, { useContext, useEffect } from "react";
import Project from "./Project.js";
import { Context } from "./Context.js";
import "./ProjectList.css";
const ProjectList = () => {
const [currentProjects, setCurrentProjects] = useContext(Context);
return (
<div className="ProjectListContainer">
{currentProjects.map((item) => {
return (
<Project
artist={item.artist}
project={item.project}
label={item.label}
/>
);
})}
</div>
);
};
export default ProjectList;
// Это мой компонент проекта
import React, { useContext, useEffect, useState, Component } from "react";
import "./Project.css";
const Project = ({ artist, project, label, light }) => {
// const [status, setStatus] = useState({ clicked: false });
// const divGotCliked = (e) => {
// setStatus({ clicked: !status.clicked });
// };
return (
<div className="ProjectContainer">
<div className="container1">
<div>
<h2>{artist} </h2>
<h2>{project} </h2>
<h2>{label} </h2>
</div>
</div>
</div>
);
};
export default Project;