Scratch Addons supports getting and modifying Redux state!
- 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.
addon.tab.redux.state stores current Redux state. For example, to get message count:
addon.tab.redux.waitForState() returns a Promise that will resolve when the Redux state meets the given condition.
||Yes||A function that takes Redux state as a parameter and returns whether to keep waiting or not.|
You must first call
addon.tab.redux.initialize() for Scratch Addons to be able to listen for state changes.
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.
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: