componentWillMount
вызывается только один раз перед начальным рендерингом. Я делаю образец кода, посмотрите его ниже
import React, { useState, useEffect } from "react";
import "./styles.css";
export default function App() {
const [mounted, setMounted] = useState(false)
if(!mounted){
// Code for componentWillMount here
// This code is called only one time before intial render
}
useEffect(() =>{
setMounted(true)
},[])
return (
<div className="App">
</div>
);
}
- Как вы упомянули, вы хотите сделать вызов api, это обычно происходит в
componentDidmount
, и вы можете просто использовать useEffect
хук с пустым массивом в качестве зависимостей в функциональной составляющей
import React, { useState, useEffect } from "react";
import "./styles.css";
export default function App() {
const [mounted, setMounted] = useState(false)
useEffect(() =>{
// This is similar to componentDidMount
// Call back-end api here
},[])
return (
<div className="App">
</div>
);
}