2015-12-05 4 views
2

Задача: Я working this tutorial, чтобы узнать о React.js. Я правильно добавил файл showdown.js в проект и доказал, что он загружается как файл сценария в клиентский браузер. Когда страница загружается, и я смотрю на консоль, она показывает ошибку, указанную в заголовке.Uncaught ReferenceError: вскрытие не определено, ReactJS.NET

Окружающая среда: MVC 4/5, Reactjs.NET

JSX файл выглядит так:

var Comment = React.createClass({ 
    render: function() { 
    var converter = new Showdown.converter(); <-- Error is here 
    return (
     <div className="comment"> 
     <h2 className="commentAuthor"> 
      {this.props.author} 
     </h2> 
      {converter.makeHtml(this.props.children.toString())} 
     </div> 
    ); 
    } 
}); 
var CommentList = React.createClass({ 
    render: function() { 
     return (
      <div className="commentList"> 
      <Comment author="Daniel Lo Nigro">Hello ReactJS.NET World!</Comment> 
      <Comment author="Pete Hunt">This is one comment</Comment> 
      <Comment author="Jordan Walke">This is *another* comment</Comment> 

      </div> 
    ); 
    } 
}); 

var CommentForm = React.createClass({ 
    render: function() { 
     return (
      <div className="commentForm"> 
       Hello, world! I am a CommentForm. 
      </div> 
    ); 
    } 
}); 


var CommentBox = React.createClass({ 
    render: function() { 
     return (
     <div className="commentBox"> 
     <h1>Comments</h1> 
     <CommentList /> 
     <CommentForm /> 
     </div> 
    ); 
    } 
}); 
ReactDOM.render(
    <CommentBox />, 
    document.getElementById('content') 
); 

Proof showdown.js файл отправляется клиенту Chrome Browser:

ShowdownLoaded

Доказательство синтаксис является правильным в JSX файл

Строка кода, где генерируется исключение:

var converter = new Showdown.converter(); 

ShowDownConvertor

Вопрос Как получить новый экземпляр Showdown.convertor?

+1

Вы случайно включили скрипт 'showdown.js' после вашего' Tutorial.jsx' в свой индексный файл? –

+0

@JanKlimo Да, это была проблема ... У меня была загрузка файла после того, как это было необходимо. Благодаря! –

+1

Сладкий! Нет проблем. –

ответ

1

Предложение Яна выше было правильным. Именно это и поставило проблему:

<body> 
    <div id="content"></div> 
    <script src="https://fb.me/react-0.14.0.min.js"></script> 
    <script src="https://fb.me/react-dom-0.14.0.min.js"></script> 
    <script src="@Url.Content(" ~/Scripts/showdown.min.js ")"></script> 
    <script src="@Url.Content(" ~/Scripts/Tutorial.jsx ")"></script> 
</body> 

Обратите внимание, что showdown.js должен находиться перед файлом jsx.

Смежные вопросы