ReactJS.net无法调试



我使用ReactJS创建了一个小应用程序。Net和ASP。净5。如果我使用@Html.React渲染组件服务器端并将其绑定到MVC

@using System.Threading.Tasks
@using React.AspNet
@model Models.DashboardViewModel
@Html.React("MessageBoard", new
{
    recentPosts = Model.RecentPosts
})

messageBoard.jsx

"use strict";
var MessageBoard = React.createClass({
    render: function(){
        return (<table className="table forum table-striped">
                <thead> 
                    <tr>
                        <th className="cell-stat"></th>
                        <th>Topic</th>
                        <th className="cell-stat text-center hidden-xs hidden-sm">Replies</th>
                        <th className="cell-stat-2x hidden-xs hidden-sm">Last Post</th>
                    </tr>
                </thead>
                    <tbody>
                        {this.props.recentPosts.map(function(boardPost){
                            return <BoardPostRow post={boardPost}/>;
                        }, this)}
                    </tbody>
                </table>)
        }
});

这一切都很好。问题是,当我去源代码,没有。js文件,所以我没有办法调试。对于一些简单的只读元素,这可能没问题。但是现在我想呈现一些包含state的交互元素,一个用于在"留言板"上创建新帖子的表单。下面是相同*中的代码。cshtml文件。

<div id="newPost"></div>
@section scripts
{
    <script src="@Url.Content("~/scripts/Components/Board/boardPostForm.jsx")"></script>
    <script src="@Url.Content("~/scripts/Components/Common/textInput.jsx")"></script>
    <script>React.render(BoardPostForm({}), document.getElementById("newPost"))</script>
    @Html.ReactInitJavaScript()
} 
我在控制台得到的错误是:
Uncaught SyntaxError: Unexpected token <
textInput.jsx:19 Uncaught SyntaxError: Unexpected token <
(index):69 Uncaught ReferenceError: BoardPostForm is not defined(anonymous function) @ (index):69
(index):70 [.NET] Warning: Each child in an array or iterator should have a unique "key" prop. Check the render method of MessageBoard. See http://fb.me/react-warning-keys for more information.
(index):71 [.NET] Warning: Unknown DOM property class. Did you mean className?
(index):71 Uncaught ReferenceError: MessageBoard is not defined

这似乎是一个错误,试图读取。jsx,因为它带我到渲染函数,当我点击错误。我遗漏了什么?也许我需要做jsx->js转换作为我的构建过程的一部分(我使用Gulp),而不是依赖于reactjs ?

如果在浏览器中点击/scripts/Components/Board/boardPostForm.jsx会发生什么?它应该显示编译后的JSX和一些ReactJS。. NET信息放在文件的顶部。如果没有,请确保在Web.config中配置了*.jsx处理程序。它应该看起来像这样:

<add name="ReactJsx" verb="GET" path="*.jsx" type="React.Web.JsxHandlerFactory, React.Web" preCondition="integratedMode" />

我在这里错过了什么?也许我需要做jsx->js转换作为我的构建过程的一部分(我使用Gulp),而不是依赖于reactjs ?

如果你喜欢,你可以使用Gulp,由你决定。我在这里有一个使用Webpack和ReactJS进行捆绑的示例。.NET服务器端渲染:https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack

相关内容

  • 没有找到相关文章

最新更新