Skip to content

Bug: Unable to Iterate over Symbol Type Properties in React Component #27319

Closed
@misaka42

Description

@misaka42

React version: all

Steps To Reproduce

import React from "react";

const KEY_OF_A = Symbol.for("a");
const KEY_OF_B = "b";

export default function App() {
  return React.createElement(Foo, {
    [KEY_OF_A]: "A",
    [KEY_OF_B]: "B"
  });
}

function Foo(props) {
  return React.createElement(
    "text",
    null,
    props[KEY_OF_A] + "__" + props[KEY_OF_B]
  );
}


// -> undefined__B

Link to code example: https://codesandbox.io/s/jolly-wright-gzlxf7?file=/src/App.js

The current behavior

for (propName in config) {

   // Remaining properties are added to a new props object
    for (propName in config) {
      if (
        hasOwnProperty.call(config, propName) &&
        !RESERVED_PROPS.hasOwnProperty(propName)
      ) {
        props[propName] = config[propName];
      }
    }

The expected behavior

I'm not sure if it was intended to be designed this way, but I currently have a scenario where I need to inject some private variables into user components from the framework layer. However, these symbols are being removed during the process of passing them. So I'm wondering if it's possible to design this part to support the passing of symbol attributes?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: UnconfirmedA potential issue that we haven't yet confirmed as a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions