প্রতিক্রিয়া জেএস: "আনকাচড সিনট্যাক্স এরিয়ার: অপ্রত্যাশিত টোকেন <"


110

আমি রিঅ্যাকটিজেএসে একটি সাইট তৈরি শুরু করার চেষ্টা করছি। যাইহোক, আমি যখন আমার জেএসকে একটি পৃথক ফাইলে রাখার চেষ্টা করেছি, তখন আমি এই ত্রুটিটি পেতে শুরু করেছি: "আনচাক্ট সিনট্যাক্স এরিয়ার: অপ্রত্যাশিত টোকেন <"।

আমি /** @jsx React.DOM */জেএস ফাইলের শীর্ষে যুক্ত করার চেষ্টা করেছি , তবে এটি কিছুই ঠিক করে নি। নীচে এইচটিএমএল এবং জেএস ফাইল রয়েছে। ভুল হতে চলেছে যে কোনও ধারণা?

এইচটিএমএল

<html>
  <head>
    <title>Page</title>
    <script src="http://fb.me/react-0.12.2.js"></script>
    <script src="http://fb.me/JSXTransformer-0.12.2.js"></script>
    <script src="http://code.jquery.com/jquery-1.10.0.min.js"> </script>
    <script src="./lander.js"> </script>
  </head>
  <body>
    <div id="content"></div>
    <script type="text/jsx">
        React.render(
            <Lander />,
            document.getElementById('content')
        );
    </script>
  </body>
</html>

জাতীয়

/**
 * @jsx React.DOM
 */
var Lander = React.createClass({
    render: function () {
        var info = "Lorem ipsum dolor sit amet... ";
        return(
            <div>
                <div className="info">{info}</div>
            </div>
        );
    }
});

সম্পাদনা: আমি বুঝতে পেরেছি যে type="text/jsx"স্ক্রিপ্ট ট্যাগে আমার ল্যান্ডার কোডটি অন্তর্ভুক্ত করা দরকার। তবে এটি যুক্ত করা এবং পুনরায় লোড করার পরে আমি এই সতর্কতাটি পেয়েছি get

"আপনি ইন-ব্রাউজার জেএসএক্স ট্রান্সফর্মার ব্যবহার করছেন production উত্পাদনের জন্য আপনার জেএসএক্সকে পূর্বনির্ধারিত করতে ভুলবেন না - http://facebook.github.io/react/docs/tooling-integration.html#jsx "

এই ত্রুটিটি অনুসরণ করে:

"এক্সএমএলএইচটিপিআরকোয়েস্ট ফাইলটি লোড করতে পারে না: ///User/.../lander.js। ক্রস অরিজিন অনুরোধগুলি কেবল প্রোটোকল স্কিমগুলির জন্য সমর্থিত: http, ডেটা, ক্রোম-এক্সটেনশন, https, ক্রোম-এক্সটেনশন-রিসোর্স" "

মনে হচ্ছে ব্রাউজার জেএসএক্স রূপান্তরকর্মের কাজটি পেতে আমার আরও কিছু করা দরকার, তবে আমি নিশ্চিত না যে এটি কী।

সম্পাদনা: OOOOH এমএএমপি বা কিছু ব্যবহার করে আমার এটি হোস্ট করা দরকার?


আপনি কীভাবে আপনার "জেএস" ফাইলটি অন্তর্ভুক্ত করছেন?
— কোয়ান্টিন

1
আপনাকে অতিরিক্তভাবে নিম্নলিখিত স্ক্রিপ্ট কোড যুক্ত করতে হবে। <স্ক্রিপ্ট src = " unpkg.com/@babel/standalone/babel.min.js " > </script >
— স্টিভেন

2019 আপডেট : type="text/babel"যেখানে আমি আমার জেএস ফাইল এবং বাবেল স্ক্রিপ্ট আমদানি করছি সেখানে স্ক্রিপ্ট ট্যাগে যুক্ত করা যা উপরের মন্তব্যে @ স্টিভেন আমার জন্য কাজ করেছে।
— সিকনাপস

উত্তর:


128

আপডেট - পরিবর্তে এটি ব্যবহার করুন:

<script type="text/babel" src="./lander.js"></script>

যোগ type="text/jsx"এর একটি অ্যাট্রিবিউট হিসাবে scriptজাভাস্ক্রিপ্ট যে ফাইলটি JSX ট্রান্সফরমার দ্বারা রুপান্তরিত করা আবশ্যক, যে ভালো অন্তর্ভুক্ত করা ব্যবহৃত ট্যাগ:

<script type="text/jsx" src="./lander.js"></script>

তারপর আপনি যেমন আলোচনা করা হয়েছে, স্থানীয় হোস্ট তাই যোগের কাজ যে সব পৃষ্ঠার হোস্ট করার জন্য MAMP অথবা অন্য কোনো পরিষেবা ব্যবহার করতে পারে এখানে ।

সবাইকে সাহায্য করার জন্য ধন্যবাদ!


3
python -m SimpleHTTPServer 8080সাধারণত ব্যবহৃত হয় কারণ আপনাকে অ্যাপাচের মতো অবিরাম সার্ভারটি ইনস্টল করতে, চালাতে এবং কনফিগার করতে হবে না।
— ব্রিগেন্ড

3
পুরোপুরি কাজ করে, আমি কেবল text/jsxবৈশিষ্ট্যটির মানটি যুক্ত করেছি
— উইলিয়াম

27

জেএসটি ট্রান্সফর্মটি অবচিত করা হয়েছে , দয়া করে পরিবর্তে ব্যাবেল ব্যবহার করুন।

<script type="text/babel" src="./lander.js"></script>


13

যোগ type="text/babel"স্ক্রিপ্ট যে .jsx ফাইল অন্তর্ভুক্ত করতে এবং এই যোগ করার জন্য: <script src="https://npmcdn.com/babel-core@5.8.38/browser.min.js"></script>


3
সংস্করণ 6 এর জন্য: এখানে<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> উল্লিখিত হিসাবে
— ব্যবহারকারী 3405291

4

যদি আপনার মত কিছু আছে

Uncaught SyntaxError: embedded: Unexpected token

আপনি সম্ভবত কোনও জায়গায় কমাটি মিস করেছেন:

  var CommentForm = React.createClass({
  getInitialState: function() {
      return {author: '', text: ''};

  }, // <---- DON'T FORGET THE COMMA

  render: function() {
      return (
      <form className="commentForm">
          <input type="text" placeholder="Nombre" />
          <input type="text" placeholder="Qué opina" />
          <input type="submit" value="Publicar" />
      </form>
      )
  }
  });

2
তাত্ক্ষণিক সমাধান।)
— জুলটান

3

আপনার কোডটি সঠিক। জেএসএক্স কোডটি জেএসে সংকলন করা দরকার:

http://facebook.github.io/react/jsx-compiler.html


চেষ্টা করে দেখুন, এখন আমি কেবল "আনকাচড সিনট্যাক্স এরর: অপ্রত্যাশিত টোকেন ইলিজেল" পেয়ে যাচ্ছি
— ক্যাট

আপনি ক্রোম ব্যবহার করছেন? এটি কি আপনাকে একটি নির্দিষ্ট নম্বর এবং একটি নির্দিষ্ট লাইন নম্বর দেয়?
— stewart715

আমার খারাপ, লাইন ব্রেকগুলি এড়িয়ে চলা ছাড়া করতে পারে না যাতে আপনার সাথে তাদের একত্রিত হওয়া দরকার +... আপডেট করা উচিত এখনি work
— stewart715

এখন আমি এটি পেয়ে যাচ্ছি: "আনকাচড ত্রুটি: ইনভারেন্টেন্ট লঙ্ঘন: রিঅ্যাক্টকম্পোজাইট কম্পোনেন্ট.রেন্ডার (): একটি বৈধ রিঅ্যাক্ট কম্পোনেন্ট অবশ্যই ফিরতে হবে You আপনি অপরিজ্ঞাত, কোনও অ্যারে বা অন্য কোনও অবৈধ অবজেক্ট ফিরে আসতে পারেন।" মনে হয় একটি স্ট্রিং মত নয় একটি বৈধ উপাদান প্রতিক্রিয়া
— Kat

আহ আমি জানি এখানে কী চলছে ... আপনার জাএসএক্স রিএ্যাক্ট কোডটি জাভাস্ক্রিপ্টে সংকলন করা দরকার ... আপনি এটি করছেন বা সরাসরি ব্রাউজারে চলছে?
— stewart715

3

আপনি যদি এরকম কোনও ত্রুটি পেয়ে থাকেন:

সিনট্যাক্স এরর: এম্বেড করা: অপ্রত্যাশিত টোকেন (107: 9) 105

এটি হতে পারে আপনি একটি কোঁকড়ানো বন্ধনী অনুপস্থিত


1

ওয়েবপ্যাক যুক্ত করার চেষ্টা করুন, এটি আমার প্রকল্পে একই সমস্যাটি সমাধান করেছে। বিশেষত "প্রিসেট" অংশ।

module: {
    loaders: [
        {
            test: /\.jsx?/,
            include: APP_DIR,
            loader: 'babel',
            query  :{
                presets:['react','es2015']
            }
        },

0

আপনার সাথে আমারও একই সমস্যা আছে এবং আমার সার্ভারে আমার কিছু পরিবর্তন হয়েছে

আপনি এটি চেষ্টা করতে পারেন

const root = require("path").join(__dirname, "./build");
app.use(express.static(root));
app.get("*", (req, res) => {
  res.sendFile("index.html", { root });
});

মূল প্রশ্নটি এক্সপ্রেস.জেএস ব্যবহার করে নি; আপনি ব্যাখ্যা করতে পারেন যে এটি কীভাবে সমস্যার সমাধান করে?
— জোনাথন রোজা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.