Side effects are tasks that do not affect the render cycle. The following example illustrates such a task:
navigator.geolocation.getCurrentPosition((position) => {
const sortedPlaces = sortPlacesByDistance(AVAILABLE_PLACES, position.coords.latitude, position.coords.longitude);
});
useEffectis executed after the component has been loaded
//App.js
function App() {
const [modalIsOpen, setModalIsOpen] = useState(false);
const selectedPlace = useRef();
const [availablePlaces, setAvailablePlaces] = useState([]);
const [pickedPlaces, setPickedPlaces] = useState(storedPlaces);
useEffect(() => {
navigator.geolocation.getCurrentPosition((position) => {
const sortedPlaces = sortPlacesByDistance(AVAILABLE_PLACES, position.coords.latitude, position.coords.longitude);
setAvailablePlaces(sortedPlaces);
});
}, []);
//restlicher Code
}