Skip to content

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

Description

@jojjesv

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();
  }
})

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

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