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 (последняя / следующая) с тем же результатом.

Что-то явно не так с первым примером? Я безуспешно искал и пробовал разные варианты.

Спасибо.

0 ответов

Другие вопросы по тегам