Когда я запускаю этот компонент, вызываются оба эффекта. Как предотвратить вызов второго при монтировании компонента?
const Item = ({route, navigation, ...props}) => {
const [page, setPage] = useState(0)
useEffect(() => {
console.info('component mount')
//call API with page 0
//call another API
}, [])
useEffect(() => {
console.info('called', page)
//call API with page {page}
}, [page])
console.info('render')
return (
<Text>test</Text>
);
}
🤔 А знаете ли вы, что...
React DevTools - это расширение для браузера, облегчающее отладку приложений React.
useEffect
всегда будет работать при начальном рендеринге, но вы можете использовать условия, чтобы определить, какие действия следует предпринять в рамках эффекта.
В вашем случае никаких условий не требуется, вам просто нужно удалить вызов API для страницы 0 в вашем первом эффекте, чтобы он вызывался во втором.