【发布时间】:2015-08-15 00:09:52
【问题描述】:
假设我有这段代码,它根据某些条件定义组件@authComponent:
@AuthPanel = React.createClass
componentWillReceiveProps: ->
@authComponent = if @props.uiState.auth_panel?.signed_in
<SignOutForm uiState={@props.uiState} socket={@props.socket} />
else
<SignInForm uiState={@props.uiState} socket={@props.socket} />
render: ->
<div className="navbar-collapse">
{@authComponent}
</div>
我遇到的主要问题是难以理解我应该在哪里定义我的@authComponent 变量。
这是我的想法列表:
- 我先用
componentWillMount尝试过,但我遇到了麻烦——@authComponent只调用了一次。 - 如果我尝试
componentWillReceiveProps,我会一直得到渲染,除了第一次。 - 我可以尝试定义函数
- 我可以在
render方法上精确定义@authComponent,但它看起来很脏。 - 我可以使用这样的构造:
{div || <SignInForm />},但它也不性感
有没有合适的方式来定义我的组件?
【问题讨论】:
标签: javascript coffeescript reactjs