Javascript ReactJS';世界你好';使用JSX和类不会向浏览器打印任何内容

Javascript ReactJS';世界你好';使用JSX和类不会向浏览器打印任何内容,javascript,html,reactjs,web,jsx,Javascript,Html,Reactjs,Web,Jsx,我正在尝试获取一些基本的jsx,以便在常规web浏览器中显示一些文本。通过双击主html文件并在chrome中打开代码,firefox 我一直在关注这些链接和一些书籍 是唯一一个似乎在实际的网络浏览器中打开程序时触碰的。问题是它没有包括一些额外的东西,比如创建类和其他类所做的事情 我似乎找不到我的代码没有打印任何内容的原因 所需输出 你好,世界 在我使用的网络浏览器(Firefox)中打印 jsx/index.js import React from 'react'; import { re

我正在尝试获取一些基本的jsx,以便在常规web浏览器中显示一些文本。通过双击主html文件并在chrome中打开代码,firefox

我一直在关注这些链接和一些书籍

是唯一一个似乎在实际的网络浏览器中打开程序时触碰的。问题是它没有包括一些额外的东西,比如创建类和其他类所做的事情

我似乎找不到我的代码没有打印任何内容的原因


所需输出

你好,世界

在我使用的网络浏览器(Firefox)中打印


jsx/index.js

import React from 'react';
import { render } from 'react-dom';

class navBar extends React.Component {
    render() {
        return <div>Hello world</div>;
    }
}

render(<navBar />, document.body)
从“React”导入React;
从'react dom'导入{render};
类navBar扩展了React.Component{
render(){
返回你好世界;
}
}
render(,document.body)

index.html

<!DOCTYPE html>
<html>
    <head>
        <title>Hello World</title>

        <script src="https://unpkg.com/react@16.8.4/index.js"></script>
        <script src="https://unpkg.com/react-dom@16.8.4/index.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.2/browser.min.js"></script>

        <meta charset="utf-8" name="viewport" content="user-scalable=no, width=device-width" />
    </head>

    <body>
        <script type='text/babel' src='jsx/index.js'></script>
    </body>
</html>

你好,世界

根据react文档,您不应该使用以小写字母开头的
类/组件
名称

navBar
更改为
navBar
,您就可以出发了

此外,您不应该将组件装载到body标记,因为某些第三方库可能会操纵页面的主体


另外,请阅读开发人员工具中的控制台警告和错误,您将从中得到基本答案。

您需要index.html中ID为“root”的容器,并且需要从“react dom”导入ReactDOM。您还应该使用大写字母(Navbar而不是Navbar)命名组件,这是惯例。您的代码应该如下所示:

从“React”导入React;
从“react dom”导入react dom;
类Navbar扩展了React.Component{
render(){
返回你好世界;
}
}

jsx中的ReactDOM.render(,document.querySelector('#root'))

删除导入语句

另外,在return语句中的div周围添加括号

用大写字母命名组件(NavBar而不是NavBar)

使用ReactDOM.render

以及为了安全

在html主体内创建一个Div,以便将组件装载到其中。这将防止第三方库操纵页面主体

class NavBar extends React.Component {

    render() {
        return (
                <div>
                    Hello world
                </div>
        );
    }
}

ReactDOM.render(<NavBar />, document.querySelector('#root'))
类导航栏扩展了React.Component{
render(){
返回(
你好,世界
);
}
}
ReactDOM.render(,document.querySelector('#root'))
在html中 使用和作为源脚本

<!DOCTYPE html>
<html>
    <head>
        <title>Hello World</title>

            <script src="https://unpkg.com/react@16/umd/react.development.js"></script>
            <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
            <script src="https://unpkg.com/babel-standalone@6.26.0/babel.js"></script>
        <meta charset="utf-8" name="viewport" content="user-scalable=no, width=device-width" />
    </head>

    <body>
        <div id="root"></div>
        <script type='text/babel' src='jsx/index.js'></script>

    </body>
</html>    

你好,世界

通常需要创建一个div,并将其交给render函数。您的React版本非常旧,请尝试更新到16。8@felixmosh我还没反应过来。我是否正确更改了版本?否,unpkg.com/react@16.8.0/umd/react.production.min.js unpkg.com/react-dom@16.8.0/umd/react-dom.production.min。js@Jacob你能检查一下这个吗?这也和你从'react dom'导入{render}一样;所以ReactDom.render,这里是ReactDom而不是ReactDom,这里不需要ReactDom,只需要render(,document.querySelector('#root'))fine@Jayavel抱歉,我正在导入reactdom,就像你提到的那样,我只是没有更新我的问题来显示它。您发布的github示例没有使用类,在这个示例中,这对我来说似乎是一个大问题。我已经能够在不使用类的情况下创建hello world。第二个例子看起来有点复杂。我会仔细阅读,但更难理解。我发布了一个更新,但似乎没有帮助。你也可以发布你的html吗?另外,在我使用document.body之前。这还不够好吗?你需要在你的身体里有html格式的反应渲染器,在那里反应渲染器似乎仍然没有帮助。您是否有正在使用的html?此外,我还发布了一些更新的控制台错误。