Skip to content

Commit 904d176

Browse files
mackwang112claude
andcommitted
docs: 将 notifyDimensionsChange 文档移至全局 API 章节
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent d02e51b commit 904d176

2 files changed

Lines changed: 2 additions & 38 deletions

File tree

.agents/skills/mpx2rn/references/rn-script-reference.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -587,11 +587,13 @@ setAppHide()
587587
| `getCurrentPages()` | 返回当前导航栈中已映射的页面实例列表(顺序与路由 state 相关)。 |
588588
| `setAppShow()` | 手动触发应用「进入前台」逻辑,驱动已注册的 `onShow`|
589589
| `setAppHide()` | 手动触发应用「进入后台」逻辑,驱动已注册的 `onHide`|
590+
| `notifyDimensionsChange(dimensions?)` | 主动通知框架 dimensions 发生变化,触发 rpx、vw、vh、媒体查询、onResize 等的重新计算。在某些容器环境下(如折叠屏、分屏)系统 `Dimensions` 事件无法正常触发时使用。不传参时默认使用当前全局 dimensions 并重新执行 `customDimensions`|
590591

591592
#### 注意事项
592593

593594
- 勿在 App 构造函数执行完成前依赖 `getApp()` 内业务字段已赋值完毕;与路由相关的初始化宜放在 `onLaunch` / `onShow`
594595
- `getCurrentPages()` 依赖 React Navigation 焦点与 `__mpxPagesMap`,与原生小程序栈细节不完全相同。
596+
- `notifyDimensionsChange` 由框架在首次样式计算时自动注入,可在业务代码任意位置调用。
595597

596598
---
597599

docs-vitepress/guide/rn/application-api.md

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -463,44 +463,6 @@ createComponent({
463463

464464
例如: 在折叠屏中我们期望只在其中一半屏上展示,可在 customDimensions 中判断当前是否为折叠屏展开状态,如果是则将 ScreenWidth 设置为原来的一半。
465465

466-
#### notifyDimensionsChange
467-
468-
```ts
469-
(dimensions?: { window: ScaledSize; screen: ScaledSize }) => void
470-
```
471-
472-
主动通知框架 dimensions 发生变化,触发 rpx、vw、vh、媒体查询、onResize 等的重新计算。
473-
474-
框架默认已监听 `Dimensions.addEventListener('change', ...)` 自动处理尺寸变化。在某些容器环境下(如折叠屏、分屏)系统事件无法正常触发时,可手动调用此方法驱动更新。不传参时默认使用当前全局 dimensions。
475-
476-
**传入 dimensions(系统事件无法触发时):**
477-
478-
```javascript
479-
// 示例:折叠屏展开/折叠时手动通知框架
480-
import { Dimensions } from 'react-native'
481-
482-
foldableScreen.on('change', () => {
483-
notifyDimensionsChange({
484-
window: Dimensions.get('window'),
485-
screen: Dimensions.get('screen')
486-
})
487-
})
488-
```
489-
490-
**不传参(`customDimensions` 逻辑变更后重新应用):**
491-
492-
`customDimensions` 是在 dimensions 变化时被调用的转换函数,如果运行时动态修改了 `customDimensions` 的逻辑,需要用无参调用让框架以当前屏幕尺寸重新执行一次 `customDimensions`,使新逻辑立即生效。
493-
494-
```javascript
495-
// 示例:切换折叠屏展示模式后,重新应用 customDimensions
496-
mpx.config.rnConfig.customDimensions = ({ window, screen }) => {
497-
// 更新后的转换逻辑
498-
return isFolded ? { window, screen } : { window, screen: { ...screen, width: screen.width / 2 } }
499-
}
500-
// 不传参,用当前屏幕尺寸重新触发 customDimensions
501-
notifyDimensionsChange()
502-
```
503-
504466
### 前后台切换 {#app-state-change}
505467

506468
#### mpx.config.rnConfig.disableAppStateListener

0 commit comments

Comments
 (0)