reactjs - 基于状态的条件渲染
问题描述
我想根据状态进行一些条件渲染。我的状态看起来是这样的:
state = {
text: '',
properties: {
someMoreData: [{...}]
},
moreData: ''
}
someMoreData
我想根据我所在州的属性键中是否存在该字段来进行条件渲染。我当前的代码如下所示:
render () {
console.log(this.state)
if('someMoreData' in this.state.properties)
return (
<div>
..
</div>
)
}
React 抛出错误说明Cannot use 'in' operator to search for 'someMoreData' in undefined
如何格式化我的代码,以便如果该someMoreData
字段存在,我得到我的 JSX,如果不存在,我呈现一些其他 JSX。
解决方案
通常,您只需执行以下操作:
render() {
return (
<div>
{
this.state.properties.someMoreData && (
<div>Some other JSX stuff</div>
)
}
</div>
)
}
但是,Cannot use 'in' operator to search for 'someMoreData' in undefined
似乎表明无论出于何种this.state.properties
原因undefined
。不知道为什么只使用您发布的代码,但我会看看。
推荐阅读
- linux - 无法在 Linux 中增加打开文件限制
- android - 匕首刀柄:注释类@Singleton 和提供函数@Singleton 之间的区别
- go - 将两个 gorm 查询合二为一
- swagger - 如何定义不同对象的 OpenAPI 有序数组?
- r - 删除由 ggarrange 排列的透明 ggplot 图之间的网格
- python - tkinter python:我怎样才能把收音机放在左边,把按钮放在中间?
- sql-server - 从简单的操作中诊断执行超时?
- angular - 如何创建仅接受数字的 Validator.pattern
- kubernetes - Azure AKS:如何避免在集群创建期间在“默认”命名空间中创建资源
- python - VPS 上的 YouTube Python 脚本