React子组件是不是不应该有网球请求副作用?

我想封装一个下拉框,这个下拉框有很多页面在都用(比如城市下拉)。
我这个下拉框数据要通过网络请求,我把网络请求写在子组件中,可是父组件每次setSeate时,导致子组件会重新渲染请求数据。
我想使用usememo和React.memo,但是他们不能处理副作用。
我该如何处理?还是说子组件就不应该请求数据错误?

可以尝试使用 useEffect 钩子,仅在父组件挂载时请求网络数据