我正在使用Expo构建一个React Native应用程序。我试图在横向模式下显示屏幕。没有调用lockAsync
,一切正常。将通话添加到lockAsync
时,屏幕会正确旋转,但是随后我收到一个React警告,此后不久出现Warning: Maximum update depth exceeded. This can happen when a component calls setState inside useEffect
const Temp = ({ navigation }) => {
useEffect(() => {
changeScreenOrientation();
}, []);
const changeScreenOrientation = async () => {
await lockAsync(OrientationLock.LANDSCAPE_LEFT);
};
return (
<View>
<Text>test</Text>
<Button onPress={() => navigation.pop()} title="back" />
</View>
);
};
useEffect调用仅发生一次,因此在调用lockAsync
时会引起无限循环或错误
ExceptionsManager.js:126警告:从useState()和useReducer()进行状态更新挂钩不支持第二个回调参数。要在渲染后执行副作用,请使用useEffect()在组件主体中声明它。
169ExceptionsManager.js:126警告:已超过最大更新深度。当组件在useEffect内调用setState时会发生这种情况