Uncaught TypeError: document.body is null в React Suite
Я вижу следующую ошибку при добавлении кнопки React Suite (или другого компонента) в компонент React:
Uncaught TypeError: document.body is null
isRTL isRTL.js:2
js TableContext.js:5
Вот компонент:
import React from 'react'
import ReactDOM from 'react-dom'
import { Button } from 'rsuite'
const Hello = () => <Button>Hi</Button>
document.addEventListener('DOMContentLoaded', () => {
ReactDOM.render(
<Hello />,
document.body.appendChild(document.createElement('div')),
)
})
Обычная кнопка не вызывает ошибок:
import React from 'react'
import ReactDOM from 'react-dom'
const Hello = () => <button>Hi</button>
document.addEventListener('DOMContentLoaded', () => {
ReactDOM.render(
<Hello />,
document.body.appendChild(document.createElement('div')),
)
})
И antd тоже работает:
import React from 'react'
import ReactDOM from 'react-dom'
import { Button } from 'antd'
const Hello = () => <Button>Hi</Button>
document.addEventListener('DOMContentLoaded', () => {
ReactDOM.render(
<Hello />,
document.body.appendChild(document.createElement('div')),
)
})
Это ждет
DOMContentLoaded
для рендеринга, и я не использую компонент таблицы или какие-либо другие в этом тестовом проекте.
Я также пробовал импортировать вручную:
import React from 'react'
import ReactDOM from 'react-dom'
import { Button } from 'rsuite/lib/Button'
const Hello = () => <Button>Hi</Button>
document.addEventListener('DOMContentLoaded', () => {
ReactDOM.render(
<Hello />,
document.body.appendChild(document.createElement('div')),
)
})
Но это приводит к:
Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined.
Я не собираюсь импортировать все вручную, поэтому меня это не беспокоит.
Это использует React
v17.0.2
и rsuite
4.9.3
. Я также попробовал альфа-версию 5.0.0 (последняя / следующая) с тем же результатом.
Что-то явно не так с первым примером? Я безуспешно искал и пробовал разные варианты.
Спасибо.