【发布时间】:2015-07-25 14:32:26
【问题描述】:
我有一个我确定很常见的情况,但我还没有学会完成它的反应方式。假设我有这个:
var appView = new React.createClass({
render: function() {
return (
<div>
<SomeSubview/>
</div>
)
}
});
React.render(
React.createElement(appView),
$('#app').get(0)
);
我的问题是我应该如何创建 SomeSubView 反应组件,以便它可以在没有任何数据的情况下正确渲染,然后在数据可用时渲染显示一些数据。我已经设置了发布/订阅系统,所以我希望能够订阅一个事件并以这种方式将数据获取到 SomeSubView。 SomeSubView 可能看起来像这样:
SomeSubView = new React.createClass({
componentDidMount: function() {
pubsub.subscribe({
callback: function() {
// something the sets the state or a prop of this component
}
});
},
render: function() {
// something that renders properly when
// there is no data and renders the data when there is data
return (
<div></div>
)
}
});
我不知道这是否是 react 组件上的 state 或 props 的情况?我不知道在渲染函数中放置条件是否是最佳做法?
【问题讨论】:
-
state 是你需要的。
-
是的,把数据放到
SomeSubView的state中。是的,通常情况下,render是有条件的,取决于props和state。
标签: javascript javascript-events reactjs