当API请求返回401并将用户发送到登录屏幕时,我收到以下警告:
Warning: Can't perform a React state update on an unmounted component.
在使用钩子的功能组件中处理此警告的最佳方法是什么。请参见下面的代码:
.
.
export default function MovieDetailsScreen() {
const [movie, setMovie] = useState({});
const movieId = useNavigationParam('movieId');
useEffect(() => {
// This is the method that does the request and returns 401 (It
// uses the fetch library)
Client.movies.show(movieId)
.then(result => {
setMovie(result)
})
}, [])
.
.
.
答案 0 :(得分:0)
通常,警告不会使您的应用程序崩溃。但是您应该关心它们。例如,如果未正确卸载有状态组件,则先前的警告可能会导致性能问题
该请求(例如Promise
)尚未解决,但是您已卸载该组件。然后请求解析,调用setMovie()
来设置新状态,但是它遇到了未安装的组件。
您可以尝试抓住
Client.movies.show(movieId)
.then(result => {
setMovie(result)
})
.catch((err) => {
Client.movies.stop()
})