Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

slot props break when there are too many variables #4481

Closed
cdhanna opened this issue Feb 28, 2020 · 0 comments · Fixed by #4485
Closed

slot props break when there are too many variables #4481

cdhanna opened this issue Feb 28, 2020 · 0 comments · Fixed by #4485

Comments

@cdhanna
Copy link

cdhanna commented Feb 28, 2020

Describe the bug
Lets say I have an app.svelte and a Hoverable.svelte component. In the hoverable component, I have a slot prop that I want to expose back to the app svelte code. That works, until app.svelte defines many variables. Specifically, when the hoverable component changes the value of the slot prop, the change is not getting picked up by the app svelte code.

Logs
I don't see any relevant logs :(

To Reproduce
I copied the slot-prop example from the docs, but changed it to have a bunch of extra variables.
https://svelte.dev/repl/e5a158392c174c7594963d5a1e0308ca?version=3.19.0

Its worth pointing out that in 3.15, this bug doesn't exist. You can have a bunch of variables, and still get the expected slot-prop behaviour.
https://svelte.dev/repl/e5a158392c174c7594963d5a1e0308ca?version=3.15.0

Expected behavior
When I hover over the Hoverable component, it should read true. When I am not, it should read false.

Stacktraces
I don't see any interesting stack trace.

Information about your Svelte project:

  • Your browser and the version: (e.x. Chrome 52.1, Firefox 48.0, IE 10)
    Google Chrome | 79.0.3945.130 (Official Build) (64-bit)
    Revision | e22de67c28798d98833a7137c0e22876237fc40a-refs/branch-heads/3945@{create initial data for dynamic components in correct place #1047}
    JavaScript | V8 7.9.317.33

  • Your operating system: (e.x. OS X 10, Ubuntu Linux 19.10, Windows XP, etc)
    macOS Version 10.14.5 (Build 18F203)

  • Svelte version (Please check you can reproduce the issue with the latest release!)
    3.16 onwards.

  • Whether your project uses Webpack or Rollup
    I use rollup for my project, but I can repro in the repl.

Severity
I'm fine down-grading to 3.15 to avoid this bug, but it feels like a pretty significant problem.

Additional context
Its worth pointing out that I came across this bug in a component that didn't obviously have a bunch of top-level variables. I was designing a component that had a few top level variables, some bindings, some event passing, some slot props, etc... I noticed my slot-prop changes weren't getting picked up in the parent component, and it drove me nuts for almost a whole day. Eventually, as I started removing bits and bits of code to isolate the problem, it started working again. Finally, it got to the point where it worked, until I added an unused top level variable.
As I was looking around, I came across this merged feature in 3.16 #3945 . I haven't read the PR in full, but from skimming it, my gut tells me its related to my bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant