Почему я получаю эту ошибку? Все кажется хорошо

Я изучаю Реакт. Я добавил их на свой сайт с тегом html script:

Мой index.html:

<!DOCTYPE html>
<html lang = "en">
<head>
    <meta charset = "UTF-8">
    <meta http-equiv = "X-UA-Compatible" content = "IE=edge">
    <meta name = "viewport" content = "width=device-width, initial-scale=1.0">
    <title>MyWebsitewithReact</title>
    <link rel = "stylesheet" href = "css/main.css">
    <meta name = "theme-color" content = "#2e2e2e">
</head>
<body>
    <div class = "navbar">
        <a href = "#">Home</a>
        <a href = "developer/">Plugins</a>
    </div>
    <div id = "root"></div>
    <script src = "https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
    <script src = "https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
    <script src = "https://unpkg.com/@babel/standalone/babel.min.js"></script>
    <script src = "js/index.js"></script>
</body>
</html>

Мой index.js:

'use strict';

function LikeButton() {
    const [liked, setLiked] = React.useState(false);

    if (liked) {
        return 'You liked this!';
    }

    return React.createElement(
        'button',
        {
            onClick: () => setLiked(true),
        },
        'Like'
    );
}

const rootNode = document.getElementById('root');
const root = ReactDOM.createRoot(rootNode);
root.render(React.createElement(LikeButton));

Это ошибка, которую я получаю:

Ошибка: ошибка Minified React # 299; посетите https://reactjs.org/docs/error-decoder.html?invariant=299 для полного сообщения или используйте неминифицированную среду разработки для полных ошибок и дополнительных полезных предупреждений.

Пробовал зайти, ошибка:

createRoot(...): целевой контейнер не является элементом DOM

Я проверил документацию, и все выглядит нормально

Обновлено:

🤔 А знаете ли вы, что...
JavaScript позволяет создавать динамические и интерактивные веб-приложения.


71
1

Ответ:

Решено

сначала в вашем файле index.js вам нужно добавить в первую строку:

import React from 'react';
import ReactDOM from 'react-dom/client';

потому что без импортированной этой библиотеки вы не сможете использовать элементы React и ReactDOOM.

и в вашем index.html вам нужно заменить это:

<script src = "js/index.js"></script>

к этому:

<script src = "js/index.js" type = "text/babel" data-type = "module"></script>

Хотел бы я решить твою проблему.