このコンポーネントを実行すると、両方のエフェクトが呼び出されます。コンポーネントマウントで2番目のものが呼び出されないようにするにはどうすればよいですか?
const Item = ({route, navigation, ...props}) => {
const [page, setPage] = useState(0)
useEffect(() => {
console.log('component mount')
//call API with page 0
//call another API
}, [])
useEffect(() => {
console.log('called', page)
//call API with page {page}
}, [page])
console.log('render')
return (
<Text>test</Text>
);
}
useEffect
は常に最初のレンダリングで実行されますが、条件を使用して、エフェクト内で実行するアクションを決定できます。
条件が必要ない場合は、最初のエフェクトでページ0のAPI呼び出しを削除するだけで、2番目のエフェクトで呼び出されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加