2016-04-15 11 views
0

私はReactの初心者ですので、熟練者がすぐに問題を発見します。これは私の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)の問題が考えられます。 Babelは代わりに使用するように提案されています(私の場合、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をインポートしますが、私は同じバーベルを行うとき!view/todoListは動作していません。

答えて

1

これは、Reactよりも多くのバックボーンの問題である可能性があります。私は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のはJSXビュー/ todolistのでライン1にインポートされます。 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)です。 Babelは代わりに使用するように提案されています(私の場合、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をインポートするが、私は同じバーベルを行うとき!view/todoListは動作していません。 – Danijela

関連する問題