material-ui 在单页应用程序上使用 json 数据
material-ui using json data on single page application
我需要用一些 json 数据初始化一个 React 组件,但不知道如何使用 material-ui:
这就是我的反应方式:
var CommentList = React.createClass({
render: function() {
var commentNodes = this.props.data.map(function (comment) {
return (
<Comment author={comment.author}>
{comment.text}
</Comment>
);
});
return (
<div className="commentList">
{commentNodes}
</div>
);
}
});
React.render(
<CommentBox url="comments.json" />,
document.getElementById('content')
);
但我现在使用带有 material-ui 的单页应用程序和所有页面都通过 React 加载的路由,但我不知道如何将 json 传递给每个单独的页面。我想通过以下方式使用它,将 comments.json 发送到我的主组件:
<Route name="root" path="/" handler={Main}>
<Route name="home" url="comments.json" handler={Home} />
<DefaultRoute handler={Home}/>
</Route>
是否有可能以某种方式实现这一目标?
最简单的方法是使用 jquery ajax:
之类的方法在 componentWillMount
方法中加载 json
var CommentList = React.createClass({
componentWillMount: function () {
$.get('comments.json').done(function (json) {
this.setState({comments: json});
}.bind(this));
},
render: function() {
var commentNodes = this.state.comments.map(function (comment) {
return (
<Comment author={comment.author}>
{comment.text}
</Comment>
);
});
return (
<div className="commentList">
{commentNodes}
</div>
);
}
});
您显然可以在 Main
组件中调用 ajax 并将数据作为 props 传递,但您会明白的。
我需要用一些 json 数据初始化一个 React 组件,但不知道如何使用 material-ui:
这就是我的反应方式:
var CommentList = React.createClass({
render: function() {
var commentNodes = this.props.data.map(function (comment) {
return (
<Comment author={comment.author}>
{comment.text}
</Comment>
);
});
return (
<div className="commentList">
{commentNodes}
</div>
);
}
});
React.render(
<CommentBox url="comments.json" />,
document.getElementById('content')
);
但我现在使用带有 material-ui 的单页应用程序和所有页面都通过 React 加载的路由,但我不知道如何将 json 传递给每个单独的页面。我想通过以下方式使用它,将 comments.json 发送到我的主组件:
<Route name="root" path="/" handler={Main}>
<Route name="home" url="comments.json" handler={Home} />
<DefaultRoute handler={Home}/>
</Route>
是否有可能以某种方式实现这一目标?
最简单的方法是使用 jquery ajax:
之类的方法在componentWillMount
方法中加载 json
var CommentList = React.createClass({
componentWillMount: function () {
$.get('comments.json').done(function (json) {
this.setState({comments: json});
}.bind(this));
},
render: function() {
var commentNodes = this.state.comments.map(function (comment) {
return (
<Comment author={comment.author}>
{comment.text}
</Comment>
);
});
return (
<div className="commentList">
{commentNodes}
</div>
);
}
});
您显然可以在 Main
组件中调用 ajax 并将数据作为 props 传递,但您会明白的。