Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Expo ScreenOrientation.lockAsync()问题_Reactjs_React Native_Expo_React Navigation - Fatal编程技术网

Reactjs Expo ScreenOrientation.lockAsync()问题

Reactjs Expo ScreenOrientation.lockAsync()问题,reactjs,react-native,expo,react-navigation,Reactjs,React Native,Expo,React Navigation,我正在使用Expo构建一个React原生应用程序。我正在尝试以横向模式显示屏幕。如果不调用lockAsync,一切正常。将调用添加到lockAsync时,屏幕会正确旋转,但随后我收到一条React警告,紧接着是警告:超出了最大更新深度。当组件在useEffect内部调用setState时,可能会发生这种情况 const Temp = ({ navigation }) => { useEffect(() => { changeScreenOrientation(); }

我正在使用Expo构建一个React原生应用程序。我正在尝试以横向模式显示屏幕。如果不调用
lockAsync
,一切正常。将调用添加到
lockAsync
时,屏幕会正确旋转,但随后我收到一条React警告,紧接着是
警告:超出了最大更新深度。当组件在useEffect内部调用setState时,可能会发生这种情况

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>
  );
};
const Temp=({navigation})=>{
useffect(()=>{
改变屏幕方向();
}, []);
const changeScreenOrientation=async()=>{
等待锁定异步(方向锁定。左);
};
返回(
测试
navigation.pop()}title=“后退”/>
);
};
useEffect调用只发生一次,因此在调用
lockAsync

ExceptionsManager.js:126警告:来自useState()和useReducer()挂钩的状态更新不支持第二个回调参数。要在渲染后执行副作用,请使用useffect()在组件体中声明它

169ExceptionsManager.js:126警告:超出最大更新深度。当组件在useEffect内部调用setState时,可能会发生这种情况