rsnext/examples/with-xstate
Nick Babcock 5629223407
Update examples to use React 17 (#26133)
[With next 11 requiring react 17](https://nextjs.org/blog/next-11#upgrade-guide), most of the examples
need to be updated, so the following snippet updated all the examples to
a compatible react version.

```bash
cd examples/
fd -g 'package.json' | xargs sed -r -i 's/"react": ".*"/"react": "^17.0.2"/
fd -g 'package.json' | xargs sed -r -i 's/"react-dom": ".*"/"react-dom": "^17.0.2"/'

# exclude experimental react version
git checkout with-reason-relay/package.json
```
2021-06-16 16:43:26 +00:00
..
components Update Examples for Fast Refresh (#13068) 2020-05-18 17:44:18 -04:00
machines update with-xstate example and add documentation for inspect package usage (#23287) 2021-03-23 15:04:53 +00:00
pages feat: Remove redundant imports in XState example (#13020) 2020-05-17 17:52:00 -04:00
.gitignore Added .gitignore to examples that are deployed to vercel (#15127) 2020-07-16 10:52:23 -04:00
package.json Update examples to use React 17 (#26133) 2021-06-16 16:43:26 +00:00
README.md docs: use descriptive links instead of "click here" (#25897) 2021-06-09 13:23:16 -05:00

XState example

This example shows how to integrate XState in Next.js. Learn more about XState.

Preview

Preview the example live on StackBlitz:

Open in StackBlitz

Deploy your own

Deploy the example using Vercel:

Deploy with Vercel

How to use

Execute create-next-app with npm or Yarn to bootstrap the example:

npx create-next-app --example with-xstate with-xstate-app
# or
yarn create next-app --example with-xstate with-xstate-app

Inspect your machines using @xstate/inspect

You could use the inspection tools for XState: (@xstate/inspect) to debug and visualize your machines in development mode.

Install @xstate/inspect

npm install @xstate/inspect
# or
yarn add @xstate/inspect

Import it at the top of the project

import { inspect } from '@xstate/inspect'

Use the inspect method

Note that for Next.js projects, you should ensure that the inspector code only runs on the client, rather than the server:

if (typeof window !== 'undefined') {
  inspect({
    /* options */
  })
}

Deploy to Now

Deploy it to the cloud with Vercel (Documentation).

References