Repository navigation
Commit e59a6be
committed
fix(Fabric, iOS): soften the
Third-party Fabric component views that reset `_props` to base ViewProps in
`prepareForRecycle` (observed with react-native-maps' `RNMapsGoogleMapView`)
can receive `updateProps` with base `ViewProps` on the deep-link mount path
(RN 0.88 + new arch). The current RCTAssert aborts the whole app on this
diagnostic-only invariant (SIGABRT via NSInternalInconsistencyException),
taking down production and dev sessions over a recoverable condition.
The static_casts immediately below are to `const ViewProps &` and are valid
for base ViewProps, so mounting can continue safely. This changes the assert
to an RCTLogError so the condition is still visible in logs while the app
survives.
Repro: expo-router deep link directly to a screen containing a Google Map
while a recycled map view is being re-prepared; app aborts with
NSInternalInconsistencyException `...must setup `_props`...` (crash logs
show -[RCTViewComponentView updateProps:oldProps:]).
Changelog: [iOS] [Fixed] Soften the _props subclass assert in
RCTViewComponentView.updateProps to an error log_props subclass assert in RCTViewComponentView.updateProps1 parent 46d0041 commit e59a6be
1 file changed
Lines changed: 15 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
337 | 337 | | |
338 | 338 | | |
339 | 339 | | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
347 | 355 | | |
348 | 356 | | |
349 | 357 | | |
| |||
0 commit comments