未捕获的SyntaxError:embedded:意外的令牌

时间:2016-10-13 01:04:37

标签: javascript ajax reactjs

给出一个React代码:

 <script type="text/babel">
              var Var = React.createClass({
                render: function() {
                  return (
                    var args = {
                      "q": "data",
                      "offset": "0"
                    };

                    $.ajax({
                  ....headers and other stuff).done(function(JSONdata) {
                  console.log(JSONdata);

                }).fail(function() {
                  alert("You have an error");
                });
              );
            }
          });
          ReactDOM.render(<Var />, document.getElementById('div'));

我收到错误Uncaught SyntaxError: embedded: Unexpected token,显示以下行:

            render: function() {
              return (
                var args = {
                  "q": "data",
                  "offset": "0"
                };

我认为它与花括号有关,但在React模块中编写它们的正确方法是什么?或者这里的实际错误是什么?

我有babel并且反应src已经包含在我的html文件中。我需要args中的所有键值才能通过ajax发送请求。

1 个答案:

答案 0 :(得分:0)

解决方法就是将您的返回包装起来,只是自动执行它 进入一个功能

return (function(){
    var args = {
      "q": "data",
      "offset": "0"
    };

    $.ajax({
  ....headers and other stuff).done(function(JSONdata) {
    console.log(JSONdata);

    }).fail(function() {
      alert("You have an error");
    });
});

所以你的代码就像这样

var Var = React.createClass({
    render: function() {
        return (function(){
            var args = {
              "q": "data",
              "offset": "0"
            };

            $.ajax({
          ....headers and other stuff).done(function(JSONdata) {
            console.log(JSONdata);

            }).fail(function() {
              alert("You have an error");
            });
        })();
    }
});
ReactDOM.render(<Var />, document.getElementById('div'));