Разобрался. В app/index.tsx
вам нужно установить контейнер, в который скрипты будут вставляться вручную, используя CacheProvider
и createCache
, поскольку фактический ReactDOM.render происходит внутри приемника событий документа. Полный index.tsx
файл здесь:
import 'styles/index.css'
import createCache from '@emotion/cache'
import { CacheProvider } from '@emotion/core'
import React, { Fragment } from 'react'
import { render } from 'react-dom'
import { AppContainer as ReactHotAppContainer } from 'react-hot-loader'
import Root from './containers/Root'
import { configureStore } from './store/configureStore'
const AppContainer = process.env.PLAIN_HMR ? Fragment : ReactHotAppContainer
const { store, persistor } = configureStore()
document.addEventListener('DOMContentLoaded', async () => {
const myCache = createCache({
container: document.head,
})
// Render
return render(
<CacheProvider value={myCache}>
<AppContainer>
<Root store={store} persistor={persistor} />
</AppContainer>
</CacheProvider>,
document.getElementById('root')
)
})