Как предотвратить запуск реакции useEffect при монтировании компонента при использовании второго параметра

Когда я запускаю этот компонент, вызываются оба эффекта. Как предотвратить вызов второго при монтировании компонента?

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.


881
1

Ответ:

Решено

useEffect всегда будет работать при начальном рендеринге, но вы можете использовать условия, чтобы определить, какие действия следует предпринять в рамках эффекта.

В вашем случае никаких условий не требуется, вам просто нужно удалить вызов API для страницы 0 в вашем первом эффекте, чтобы он вызывался во втором.