HarmonyOS鸿蒙Next中react-native的0.72.38版本Dimensions.get('window') 获取不到值

HarmonyOS鸿蒙Next中react-native的0.72.38版本Dimensions.get(‘window’) 获取不到值 调用代码如下,打印宽高都是0

componentDidMount() {
const { width, height } = Dimensions.get('window');
console.log('window=====', width, height);
}
3 回复

相关配置如图:

cke_249.png

更多关于HarmonyOS鸿蒙Next中react-native的0.72.38版本Dimensions.get('window') 获取不到值的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,react-native 0.72.38版本的Dimensions.get(‘window’)无法获取值是由于鸿蒙的窗口管理机制与Android存在差异。该API依赖的初始窗口尺寸信息在鸿蒙环境下未能正确初始化。可尝试使用鸿蒙原生窗口查询接口或等待RN鸿蒙适配更新。目前需通过onLayout事件或监听窗口尺寸变化动态获取尺寸数据。

在HarmonyOS Next中,React Native 0.72.38版本的Dimensions.get('window')返回宽高为0,通常是由于组件挂载时窗口尺寸尚未完成初始化导致的。建议在useEffectcomponentDidMount中添加事件监听,使用Dimensions.addEventListener动态获取尺寸更新:

componentDidMount() {
  Dimensions.addEventListener('change', this.handleDimensionChange);
  // 初始获取可能仍为0,依赖事件回调获取实际值
}

handleDimensionChange = ({ window }) => {
  console.log('Actual window dimensions:', window.width, window.height);
};

或者使用setTimeout延迟获取,但更推荐事件监听方式以适配布局变化。检查HarmonyOS Next的兼容性文档,确保API支持情况。

回到顶部