Scratch Addons supports getting and modifying Redux state!
Keep in mind
- Redux is only available on scratch-www pages (the ones with the thicker navigation bar) and the editor.
- Some extensions conflict with Scratch Addons’ Redux feature. Do not use this when unnecessary.
- We expect readers to have basic knowledge on Redux and Scratch’s reducers.
Get Redux state
addon.tab.redux.state
stores current Redux state. For example, to get message count: addon.tab.redux.state.messageCount.messageCount
Wait for Redux state
addon.tab.redux.waitForState()
returns a Promise that will resolve when the Redux state meets the given condition.
Parameter | Type | Required | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
condition | Function |
Yes | A function that takes Redux state as a parameter and returns whether to keep waiting or not. | ||||||||||
options | Object |
No |
|
Events
You must first call addon.tab.redux.initialize()
for Scratch Addons to be able to listen for state changes.
Use addon.tab.redux.addEventListener("statechanged", callback)
to add event listeners for state changes. The callback can have one argument which is a CustomEvent with following attributes:
action
: Dispatched action. See Redux docs for what it means.prev
: Previous state.next
: Next state.
Dispatching event
You can dispatch events using addon.tab.redux.dispatch(eventObject)
. Event object must have type
attribute and can have other attributes. For details on what to dispatch, read reducer codes on scratch-www, scratch-gui or scratch-paint:
Comments
Make sure to follow the code of conduct. You can see this comment section on GitHub Discussions, as well as editing and removing your comment.