你可以使用变量来储存元素。它可以帮助你有条件的渲染组件的一部分,而输出的其他部分不会更改。
考虑如下代码:
// LoginStatus.js
class LoginStatus extends Component {
render () {
const isLoggedIn = this.props.isLoggedIn
// 这里最好初始化声明为 `null`,初始化又不赋值的话
// 小程序可能会报警为变量为 undefined
let status = null
if (isLoggedIn) {
status = <Text>已登录</Text>
} else {
status = <Text>未登录</Text>
}
return (
<View>
{status}
</View>
)
}
}
// app.js
import LoginStatus from './LoginStatus'
// 这样会渲染 `已登录`
class App extends Component {
render () {
return (
<View>
<LoginStatus isLoggedIn={true} />
</View>
)
}
}
在以上代码中,我们通过 isLoggedIn
作为参数来判定 status
显示什么内容,当 isLoggedIn
为 true
时 显示 「已登录」,反之显示「未登录」。
声明变量并使用 if 语句是条件渲染组件的不错的方式,但有时你也想使用更简洁的语法,在 JSX 中有如下几种方法。