У меня есть компонент реакции, который я позже визуализирую внутри своего index.js.
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
App.jsx
import SomeComponent from "./Components/SomeComponent ";
function App() {
return <SomeComponent />
}
export default App;
SomeComponent.jsx (случайное имя компонента для примера)
function SomeComponent() {
//some code
return ...
}
export default SomeComponent;
Проблема в том, что я вижу много людей, использующих
class SomeComponent extends React.Component {
componentDidMount()
//some code
render() {
return ...
}
}
И я хочу использовать этот "componentDidMount()", который я вижу во многих примерах кода, но с моим способом работы это кажется невозможным.
Но... возможно? или есть другой подобный метод, который я могу использовать?
Спасибо.
Кажется, это должно сработать для меня, спасибо!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В функциональных компонентах из React 16.8, у нас есть React Hooks. И мы можем использовать useEffect() Hook для имитации того, что componentDidMount() делает в компоненте на основе классов. Однако вам нужно будет передать второй аргумент в качестве значения состояния в useEffect(), только тогда он будет вести себя как componentDidMount() всякий раз, когда значение состояния изменяется.
Что-то вроде этого:
const [stateValue,useStateValue] = useState("enjoy");
useEffect(()=>{
// ... Your code
},[stateValue]);
Вы захотите изучить useEffect