我有一个非常有趣的问题,从我的 React 应用程序的状态中检索和显示信息,只有一个嵌套的孩子。
我正在尝试做的类似于这个react-router tutorial for recursive paths。我有一个管理员路由,它将用户带到用户可以编辑的嵌套部分。我成功地将道具传递给每个组件,呈现应用程序状态中保存的信息,直到达到某个点。
我的网址是:/admin/label/posts/edit/:post
我的组件如下所示:
import React from 'react'
import { withRouter } from 'react-router-dom'
const EditingPost = props => {
const index = props.match.params.post
const post = props.posts[index]
return(
<div>
{post.title}
</div>
)
}
export default withRouter(EditingPost)
我的错误是:
TypeError: Cannot read property 'title' of undefined
EditingPost
src/pages/Admin/Label/EditingPost.js:9
6 | const post = props.posts[index]
7 | return(
8 | <div>
> 9 | {post.title}
10 | </div>
11 | )
12 | }
但是,当我console.log(post)应用程序抛出 5 个日志时,前 2 个是undefined,接下来的 3 个包含我正在寻找的正确信息。我的想法是,在呈现组件的 html 之前,我需要等到信息可用。然而,当我将日志放入其他组件时,我注意到了同样的行为。多个日志,前一个或两个是undefined,其余的包含所需的信息,然后所有组件都正确加载。
我无法理解的是为什么我在使用这个特定组件时遇到问题。我知道我需要的信息正在通过,但由于某种原因,我无法像往常一样使用它。
我已经用谷歌搜索了我的手指,尝试导入有用的库,尝试使用承诺,尝试在此处询问之前实现我所能做的一切。
任何帮助或建议表示赞赏!我希望这一切对某人有意义。