You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently users can write a function component that looks like this, that appears to work on first render or if a parent subscribes to an atom, but actually isn't reactive to atom changes. The example comes from Discord:
constProva=({name}: {name: Atom<string>})=>{return<><inputtype="text"value={name.value}onChange={(e)=>name.set(e.target.value)}/><div>Your name is {name.value}</div></>}
Signia and/or Signia-react should either log a warning or throw an error if a component reads an atom during render in a non-reactive way. Starbeam implements this by checking React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner.current, which is only set when in development versions of React.
In Notion's internal state management system, we throw an error when this happens.
The text was updated successfully, but these errors were encountered:
Yeah this feels like it could save a lot of frustration! I'm down for adding a console.warn, maybe with an option to turn it into a thrown error if folks wanna get strict.
Currently users can write a function component that looks like this, that appears to work on first render or if a parent subscribes to an atom, but actually isn't reactive to atom changes. The example comes from Discord:
Signia and/or Signia-react should either log a warning or throw an error if a component reads an atom during render in a non-reactive way. Starbeam implements this by checking
React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner.current
, which is only set when in development versions of React.In Notion's internal state management system, we throw an error when this happens.
The text was updated successfully, but these errors were encountered: