首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React - Syntaxerror:意外的标记<

React - Syntaxerror:意外的标记<
EN

Stack Overflow用户
提问于 2017-02-21 17:10:23
回答 2查看 572关注 0票数 0

我想在我的项目中使用Express,pg和react。但是react给了我一些问题。

Here's my project's dir

index.js

代码语言:javascript
复制
var express = require('express');
var server = express();
var path = require('path');
var app = require('./app/app.js');

server.get('/', function (req, res) {
    res.sendFile(path.join(__dirname + '/public/index.html'));
});
server.listen(3000, function () {
    console.log("server is running on port 3000!");
});

var connexionDB = require('./db/connexionAvecPg');

app.js

代码语言:javascript
复制
var react = require('react');
var {render} = require('react-dom');

var App = react.createClass({
    render: function () {
        return(
                <div>
                    <p>test</p>
                </div>
                );
    }
});

render(
        <App/>,
        document.getElementById('root')
        );

(是的,它是ES5,但我有理由使用它,而不是ES6-7)

Here's my bug

我的代码出了什么问题?我是不是忘了什么?感谢您的宝贵时间。

-\编辑/

在Ming Soon的回答之后,我尝试了一下:

app.js

代码语言:javascript
复制
var React = require('react');
var ReactDOM = require('react-dom');

class App extends React.component{
    render() {
        return React.createElement('div', null, 'Test');
    }
};

ReactDOM.render(
        React.createElement(App, null),
        document.getElementById('root')
        );

但我有这样的想法:

代码语言:javascript
复制
/home/josue/im-expressandpg/app/app.js:14
class App extends React.component{
                       ^

TypeError: Class extends value undefined is not a constructor or null

-\编辑2/

谢谢PSo,我看到了我的错误。我改变了这一点:

代码语言:javascript
复制
class App extends React.component{

要这样做:

代码语言:javascript
复制
class App extends React.Component{

当我执行时:

代码语言:javascript
复制
/home/josue/im-expressandpg/app/app.js:17
        document.getElementById('root')
        ^

ReferenceError: document is not defined

如果我加上这个:

代码语言:javascript
复制
var document = require('./../public/index.html');

我得到了:

代码语言:javascript
复制
/home/josue/im-expressandpg/public/index.html:1
(function (exports, require, module, __filename, __dirname) { <!doctype html>
                                                              ^
SyntaxError: Unexpected token <
EN

回答 2

Stack Overflow用户

发布于 2017-02-21 17:15:52

要使用JSX语法,必须转换代码。Babel可以用作转译器。如果你不想使用任何转译器,那么你应该使用react.createElement()函数。

票数 1
EN

Stack Overflow用户

发布于 2017-02-21 18:22:18

删除代码的较低部分,即render函数的副本。并记得将其导出以供以后使用。

代码语言:javascript
复制
var React = require('react');
var ReactDOM = require('react-dom');

class App extends React.Component{
    render() {
        return React.createElement('div', null, 'Test');
    }
};

export default App;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42363013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档