solidjs / solid

A declarative, efficient, and flexible JavaScript library for building user interfaces.
https://solidjs.com
MIT License
31.64k stars 887 forks source link

Using enableScheduling in a simple solidjs-router project throws errors on transitions #2176

Closed QWu4xYV closed 5 days ago

QWu4xYV commented 1 month ago

Describe the bug

Using enableScheduling in a simple solidjs-router project throws errors when changing pages, saying that the results of createMemo are undefined.

(To be clear, this isn't a blocker or even an issue for me, I had just run enableScheduling in the hopes that it would help with some perf issues due to bad design on my part. Reporting it just in case it wasn't a known issue and there were plans to make enableScheduling less experimental)

Your Example Website or App

https://stackblitz.com/edit/solidjs-templates-gttqb3?file=src%2FApp.tsx

Steps to Reproduce the Bug or Issue

  1. Open the devtools console drawer
  2. Click "Other", which navigates to the second page that's set up
  3. See the error

(comment out line 8 and observe that no error is thrown)

Expected behavior

As a user, I expected to be able to navigate between pages with a Link component and enableScheduling on.

Screenshots or Videos

No response

Platform

Additional context

No response

ryansolid commented 1 month ago

Yeah.. One of the reasons enableScheduling is experimental is edge cases like this. Where it is possible to read a memo that hasn't been resolved yet. Part of the reason why I'm torn on this feature. Because I'm pretty much convinced this should never be necessary for performance, but I wanted space to see what sort of issues we'd find. The parallelized I/O parts of Transitions are great. The ability to basically have Transactions around Async. But splitting up synchronous work may have more implications then desired.

In any case thanks for reporting. While I have no interest in taking it further in 1.0. Issues like this will help isolate design flaws for 2.0 and beyond.

ryansolid commented 5 days ago

Yeah and truthfully we are redesigning this whole piece. I'm going to close this to keep issues relevant as it as we won't be updating the current version. But appreciate the information.