为什么我不能访问对象属性?

时间:2020-07-27 22:10:45

标签: javascript reactjs react-redux react-router

我正在使用react / redux / router并从url参数访问id,然后在我的redux存储中找到具有匹配id的关联对象。直到我尝试访问该对象上的所有内容为止,一切都很好。它只是说“ object.title”是未定义的,即使当我console.log()时,对象的所有属性都存在,并且它不是未定义的。

我难住了,哈哈。我觉得我已经在这里找东西了,或者可能对反应的理解不够充分。

import React from 'react'
import Header from '../ui/Header'
import { useSelector, useDispatch } from 'react-redux'  
import { useLocation } from 'react-router-dom'
import {Button, Container, TextField, Grid, Typography} from '@material-ui/core'

export default function GifPage() {
  
  const location = useLocation()
  const results = useSelector(state => state.results)
  const id = location.pathname.substring(1);
  const gif = results.find(gif => gif.id === id) 

  React.useEffect(() => {
    console.log(gif)
  },[])

  return(
    <React.Fragment>
      <Header />
        <h1></h1>
      <Grid container>
        <Grid item>
          {/* <img src={gif.images.original} alt={gif.title} /> */}
          <Typography>{gif.title}</Typography>
        </Grid>
      </Grid>
    </React.Fragment>
  )
}

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试这样做

countdown = Countdown(date: initialDate);

答案 1 :(得分:1)

如果您将debugger;放在return语句之前并运行代码,现在在devtools中,如果您检查const gif的值,是否表示它具有标题财产好吗?

我的猜测是没有,否则在<Typography>{gif.title}</Typography>中您将没有问题。

如果我的猜测是错误的,我表示歉意。