What kind of issue is this?
Link to repro
https://playground.react.dev/#N4Igzg9grgTgxgUxALhAejQAgDIEsBGMAhjAJ6ZwQC2ADhAHYL0AuYmVR5jCAJpsxEwIAHnTAJMAAxgIAZpP6DK9MFCoIYbAG64imGfR4bMNGBBpgAOvWVhmmAGIRBAXkwAKYBQAWuADY8BpgAvgCUmC4AfJjA1pgUDHb6chGYUOIASnLu9FB+fqEA3NZxmBiYAApEYGC49ADmybKKmN7OANaYuGxE+RAA7ryltvb4JKnpCABCJJ5NIUUl9PHlVTV1jTLNAsmGxqbmXWwAcgDyACqYvX4DQ8vJzLDLADw8uFqRwHC+AQZzWwtgs80G8PsV6MFwdYRpgAII0GipdzhKIxUoyR4wF5OCCff4pMIRaLPOo0KD2LYuYBbYJlSJAtA4yLgyHWEDBIA
Repro steps
In some use cases, especially in library code, it is necessary to pass a ref to the consumer using render props. However, this currently results in an error and causes optimizations to be skipped.
Example:
// `renderChildren` is a render prop; passing `ref` like this is not allowed
return <div>{renderChildren({ ref })}</div>;
In contrast, passing ref to hooks or JSX elements within render has no issues:
const bar = useBar({ ref });
<input ref={ref} />
How often does this bug happen?
Every time
What version of React are you using?
19.1.0
What version of React Compiler are you using?
19.1.0-rc.1
What kind of issue is this?
Link to repro
https://playground.react.dev/#N4Igzg9grgTgxgUxALhAejQAgDIEsBGMAhjAJ6ZwQC2ADhAHYL0AuYmVR5jCAJpsxEwIAHnTAJMAAxgIAZpP6DK9MFCoIYbAG64imGfR4bMNGBBpgAOvWVhmmAGIRBAXkwAKYBQAWuADY8BpgAvgCUmC4AfJjA1pgUDHb6chGYUOIASnLu9FB+fqEA3NZxmBiYAApEYGC49ADmybKKmN7OANaYuGxE+RAA7ryltvb4JKnpCABCJJ5NIUUl9PHlVTV1jTLNAsmGxqbmXWwAcgDyACqYvX4DQ8vJzLDLADw8uFqRwHC+AQZzWwtgs80G8PsV6MFwdYRpgAII0GipdzhKIxUoyR4wF5OCCff4pMIRaLPOo0KD2LYuYBbYJlSJAtA4yLgyHWEDBIA
Repro steps
In some use cases, especially in library code, it is necessary to pass a
refto the consumer using render props. However, this currently results in an error and causes optimizations to be skipped.Example:
In contrast, passing
refto hooks or JSX elements within render has no issues:How often does this bug happen?
Every time
What version of React are you using?
19.1.0
What version of React Compiler are you using?
19.1.0-rc.1