Skip to content

setState: One of the sources for assign has an enumerable key on the prototype chain #20948

Closed
@jojjesv

Description

Environment

React Native Environment Info:
System:
OS: macOS High Sierra 10.13.6
CPU: x64 Intel(R) Core(TM) i5-4250U CPU @ 1.30GHz
Memory: 28.78 MB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 8.9.4 - /usr/local/bin/node
Yarn: 1.9.4 - /usr/local/bin/yarn
npm: 6.2.0 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 11.4, macOS 10.13, tvOS 11.4, watchOS 4.3
Android SDK:
Build Tools: 23.0.1, 25.0.2, 26.0.2, 26.0.3, 27.0.3, 28.0.0, 28.0.2
API Levels: 23, 25, 26, 27, 28
IDEs:
Android Studio: 3.0 AI-171.4443003
Xcode: 9.4.1/9F2000 - /usr/bin/xcodebuild
npmPackages:
@types/react: ^16.4.13 => 16.4.13
@types/react-native: ^0.56.15 => 0.56.15
react: 16.4.1 => 16.4.1
react-native: 0.56.0 => 0.56.0
npmGlobalPackages:
react-native-cli: 2.0.1
react-native-git-upgrade: 0.2.7

Description

Running an RN app on iOS results in a runtime crash with setState. The debugger stops at the following line:
screen shot 2018-09-03 at 09 27 35

Where key == "constructor" and nextSource is an instance of State (which derives from BaseDialogState).

Reproducible Demo

this.state is instantiated in constructor with this.state = new BaseDialogState(); where:

export class BaseDialogState {
  dismissButtonPos?: { x: number, y: number } = null;
  visible: boolean = false;
}

Then modify the component state:

requestAnimationFrame(() => {
  if (becomesVisible) {
    this.onBecameVisible();
    this.setState({
      visible: true
    });
  } else {
    this.onBecameInvisible();
  }
})

Metadata

Assignees

No one assigned

    Labels

    JavaScriptRan CommandsOne of our bots successfully processed a command.Resolution: LockedThis issue was locked by the bot.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions