Skip to content

On Fabric, TextInput and KeyboardAvoidingView cause crash when popViewController #51423

Open
@nanatlantica

Description

@nanatlantica

Description

On Fabirc Arch, my iOS application Crashed when popViewController
Only the TextInput in focus status, this Crash happened

Steps to reproduce

JS Like this

import React, { Component } from 'react';
import {
View,
ScrollView,
SafeAreaView,
KeyboardAvoidingView,
TextInput,
TouchableOpacity,
Text,
StyleSheet
} from 'react-native';

import { AHRNBackExitModule } from 'autohome-lib';

const BiStyle = StyleSheet.create({
biAcontent: {
height: "100%",
backgroundColor: "#f8f9fc",
},
});
export default class BiddingOrder extends Component {
constructor(props) {
super(props);
this.state = {
userPhone: '',
};

this.textInputRef = React.createRef();

}
closePage = () => {

//popViewController
AHRNBackExitModule.invokeExitV2()

}

render() {
return (


<View style={{ padding: 100 }}>
<TouchableOpacity
onPress={() => this.closePage()}
activeOpacity={1}
>
back

      <ScrollView
        showsVerticalScrollIndicator={false}
        keyboardShouldPersistTaps="handled"
      >

        <View>
          <TextInput
            ref={this.textInputRef}
            placeholder="Input Phone Number"
            placeholderTextColor={'#C5CAD4'}
            value={this.state.userPhone}
            autoFocus={true}
            onChangeText={(text) => this.setState({ userPhone: text })}
            onBlur={() => {AHRNBackExitModule.invokeExit();} }
          />
        </View>
      </ScrollView>

    </SafeAreaView>
  </KeyboardAvoidingView>
);

}
}

When I press back to popViewController,app crashed

React Native Version

0.79.0

Affected Platforms

Runtime - iOS

Areas

Fabric - The New Renderer

Output of npx @react-native-community/cli info

StubView: ASSERT FAILURE: REMOVE mutation assertion failure: oldChildShadowView does not match oldStubView

Stacktrace or Logs

#4	0x000000010e5d4084 in facebook::react::StubViewTree::mutate at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/ReactCommon/react/renderer/mounting/StubViewTree.cpp:173
#5	0x000000010e527b00 in facebook::react::MountingCoordinator::pullTransaction at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp:133
#6	0x000000010e5eab3c in facebook::react::TelemetryController::pullTransaction at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/ReactCommon/react/renderer/mounting/TelemetryController.cpp:22
#7	0x000000010e86d41c in -[RCTMountingManager performTransaction:] at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/React/Fabric/Mounting/RCTMountingManager.mm:271
#8	0x000000010e86d1cc in -[RCTMountingManager initiateTransaction:] at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/React/Fabric/Mounting/RCTMountingManager.mm:259
#9	0x000000010e86c9c0 in -[RCTMountingManager scheduleTransaction:] at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/React/Fabric/Mounting/RCTMountingManager.mm:206
#10	0x000000010e8d32c8 in -[RCTSurfacePresenter schedulerDidFinishTransaction:] at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/React/Fabric/RCTSurfacePresenter.mm:374
#11	0x000000010e8afdd8 in SchedulerDelegateProxy::schedulerDidFinishTransaction at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/React/Fabric/RCTScheduler.mm:30
#12	0x000000010e5776f0 in facebook::react::Scheduler::uiManagerDidFinishTransaction at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp:331
#13	0x000000010e621f84 in facebook::react::UIManager::shadowTreeDidFinishTransaction at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/ReactCommon/react/renderer/uimanager/UIManager.cpp:541
#14	0x000000010e5b1458 in facebook::react::ShadowTree::mount at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp:424
#15	0x000000010e5b1c08 in facebook::react::ShadowTree::tryCommit at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp:410
#16	0x000000010e5b15ac in facebook::react::ShadowTree::commit at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp:307
#17	0x000000010e5b2958 in facebook::react::ShadowTree::commitEmptyTree at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp:429
#18	0x000000010e5db8fc in facebook::react::SurfaceHandler::stop at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp:111
#19	0x000000010e83b8a4 in -[RCTFabricSurface stop] at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/React/Fabric/Surface/RCTFabricSurface.mm:121
#20	0x000000010e8d3110 in __53-[RCTSurfacePresenter _stopAllSurfacesWithScheduler:]_block_invoke at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/React/Fabric/RCTSurfacePresenter.mm:359
#21	0x000000010e8e72b8 in -[RCTSurfaceRegistry enumerateWithBlock:] at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/React/Fabric/RCTSurfaceRegistry.mm:35
#22	0x000000010e8d2f98 in -[RCTSurfacePresenter _stopAllSurfacesWithScheduler:] at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/React/Fabric/RCTSurfacePresenter.mm:357
#23	0x000000010e8d1914 in -[RCTSurfacePresenter suspend] at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/React/Fabric/RCTSurfacePresenter.mm:237
#24	0x000000010e8e5034 in -[RCTSurfacePresenterBridgeAdapter dealloc] at /Users/atlantica/Desktop/autohome/RN/react-native/node_modules/react-native/React/Fabric/RCTSurfacePresenterBridgeAdapter.mm:72
#25	0x00000001062c1dd4 in -[AHRNFabricInstance .cxx_destruct] at /Users/atlantica/Desktop/autohome/RN/AHRNBrowser/AHRNBrowserFramework/AHRNRootView/AHRNFabricInstance.mm:66

MANDATORY Reproducer

https://github.com/nanatlantica/RNDynamic.git

Screenshots and Videos

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions