2016-04-15 4 views
0

Я новичок в реактиве, поэтому, возможно, кто-то, кто является экспертом, быстро обнаружит проблему. Это мой router.js:Uncaught TypeError: TodoList не является функцией

define(["backbone", "react", "jsx!view/todoList"], function(Backbone, React, ReactDOM, TodoList) { 
    return Backbone.Router.extend({ 
    routes : { 
     "" : "index" 
    }, 
    index : function() { 
     console.log("hello world"); 

     var todos = new Backbone.Collection([ 
     { 
      text: 'Dishes!', 
      dueDate: new Date() 
     } 
     ]); 

     React.render(<TodoList todos={todos} />, document.body); 
    } 
    }); 
}); 

Я получаю следующее сообщение об ошибке в консоли: VM7282:19 Uncaught TypeError: TodoList is not a function.

Возможно, проблема связана с устаревшим JSXTransformer (https://facebook.github.io/react/blog/2015/06/12/deprecating-jstransform-and-react-tools.html). Бабелю предлагается использовать вместо этого (в моем случае вместо jsx! View/todoList использовать babel! View/todoList). У меня есть проблема с этим, откуда можно импортировать babel.js. Здесь http://facebook.github.io/react/docs/displaying-data.html они импортируют https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js, но когда я делаю тот же babel! View/todoList не работает.

ответ

1

Это может быть проблема с магистралью, чем с реактивом. Я не знаком с Backbone, но в отношении React это обычно потому, что вы пытаетесь использовать какой-то компонент, который не был импортирован или определен правильно.

Например, вы можете пытаться сделать:

React.render(<TodoList todos={todos} />, document.body); 

без надлежащего импорта var TodoList = require('./TodoList')

или на самом деле создания компонента.

var TodoList = React.createClass({ 
    render: function() { 
    // code code code code 
    } 
}) 

Я считаю, что, скорее всего, вопрос: https://medium.com/react-tutorials/react-backbone-router-c00be0cf1592#.q4bsdqqgr

+0

ToDoList импортируется в строке 1 по JSX зрения/ToDoList!. Плагин JSX используется для загрузки файла todoList.js в папку просмотра. Я использовал https://blog.mayflower.de/3937-Backbone-React.html для справки и все еще не понимаю, почему он неправильно импортирован. – Danijela

+0

Возможно, проблема связана с устаревшим JSXTransformer (https://facebook.github.io/react/blog/2015/06/12/deprecating-jstransform-and-react-tools.html). Бабелю предлагается использовать вместо этого (в моем случае вместо jsx! View/todoList использовать babel! View/todoList). У меня есть проблема с этим, откуда можно импортировать babel.js. Здесь http://facebook.github.io/react/docs/displaying-data.html они импортируют https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js, но когда я делаю тот же babel! view/todoList не работает. – Danijela

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