Uncaught ReferenceError: Showdown не определен, ReactJS.NET

Проблема: я работаю с этим руководством, чтобы узнать React.js. Я правильно добавил файл showdown.js в проект и убедился, что он загружается как файл сценария в клиентском браузере. Когда страница загружается, и я смотрю на консоль, она показывает ошибку, указанную в заголовке.

Среда: 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')
);

Подтверждение того, что файл showdown.js отправлен в клиентский браузер Chrome:

ShowdownLoaded

Подтверждение правильности синтаксиса в файле JSX

Строка кода, в которой выдается исключение:

var converter = new Showdown.converter();

ШоуДаунКонвертер

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


person JWP    schedule 05.12.2015    source источник
comment
Вы случайно не включили скрипт showdown.js после Tutorial.jsx в индексный файл?   -  person Jan Klimo    schedule 23.12.2015
comment
@JanKlimo Да, в этом была проблема ... У меня загрузился файл после того, как он был необходим. Спасибо!   -  person JWP    schedule 26.12.2015


Ответы (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.

person JWP    schedule 25.12.2015