reactjs - 反应 - 未找到数据
问题描述
我有一个主要组件Resume
和一个名为Header
:
class Resume extends Component {
constructor(props) {
super();
this.state = {
data: {}
}
}
componentDidMount() {
this.setState( this.state = data);
}
render() {
return (
<div className="Resume">
<Header data={this.state.header} />
<Skills data={this.state.skills} />
</div>
);
}
}
export default Resume;
class Header extends Component {
render() {
return (
<div className="header">
<h1>{JSON.stringify(this.props.data.title)}</h1>
</div>
);
}
}
My simple sample data so far is:
{
"header": {
"title": "Tim Smith's Resume"
},
"skills": [
{"name": "HTML", "duration": 14}
]
}
为什么我得到:TypeError: Cannot read property 'title' of undefined
解决方案
- 无需使用
JSON#stringify
您的 title 属性已经是一个字符串。 在您
componentDidMount
的情况下,我们正在设置状态。尝试使用componentDidMount() const data = {}; // Define data or get it like you want this.setState({ ...data }); }
在初始化状态的构造函数中。你必须做
this.state = { header: {}, skills: {} }
你所做的。
推荐阅读
- c - 如何通过C编程删除双链表中的节点?我做到了,但它返回分段错误。不知道哪一部分错了
- python-3.x - 我如何从列表中的多个 url 下载图像
- c# - HttpPostedFileBase 文件内容在使用一次后被删除 C# MVC
- java - 如何在 Java 8(Spring Boot)应用程序中设置最大非堆内存?
- r - 访问R中随机森林中每个元素的重要性
- javascript - JSP Javascript 不工作未捕获的引用错误
- ios - 从 URL 下载非常慢
- java - 如何显示学生的排名,而排名不按降序排列
- knime - 使用 SMARTS(KNIME 和 RDKit)进行生物等排体置换
- java - JDA Discord 音乐机器人的 Youtube 搜索命令