亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

類型錯誤:無法讀取未定義 React 的屬性“標簽”

類型錯誤:無法讀取未定義 React 的屬性“標簽”

飲歌長嘯 2023-07-06 14:50:03
您好,我正在使用 iTunes Api 獲取排名前 100 的電影。這就是它在控制臺中的外觀:我試圖獲取summary.label,但我得到“TypeError:無法讀取未定義的屬性‘標簽’”下面是我的代碼示例import { MoviesList, MoviesListEl, Title, VideoWrap, MediaWrap, MovieDesc, MobilePreview } from "./styles"export default class FetchRandomMovies extends React.Component {  state = {    loading: true,    movies: []  }  async componentDidMount() {    const url = "https://itunes.apple.com/us/rss/topmovies/limit=100/json"    const response = await fetch(url)    const data = await response.json()    this.setState({ movies: data.feed.entry, loading: false })    console.log(data.feed.entry)    if (data.feed.entry) {      // console.log(data.feed.entry.summary.label)      console.log(data.feed.entry[0].summary.label)    }  }  mouseEnter = e => {    e.currentTarget.play()    this.setState({ isPlaying: true })    // console.log(e)  }  mouseLeave = e => {    e.currentTarget.pause()    e.currentTarget.load()    this.setState({ isPlaying: true })    // console.log(e)  }  render() {    if (this.state.loading) {      return <div>loading...</div>    }    if (!this.state.movies.length) {      return <div>didn't get movies</div>    }    return (      <MoviesList id="top100">        {this.state.movies.map(item => (          <MoviesListEl key={item.title.label}>            <Title>              <span>{item.title.label}</span>              <span>{item.category.attributes.term}</span>            </Title>            <MediaWrap>              <img src={item["im:image"][2].label} alt={item.title.label} />              <VideoWrap>                <video onMouseEnter={this.mouseEnter} onMouseLeave={this.mouseLeave} controls>    )  }}當我嘗試{item.summary.label}出現錯誤時。但{item.title.label}效果很好。與 console.logs 類似: console.log(data.feed.entry.summary.label)拋出錯誤,但     console.log(data.feed.entry[0].summary.label)工作正常。這很奇怪,因為當我早上工作時,一切都運轉良好?,F在,當我執行“npm start”時,發生了這個問題。是 API 有問題嗎?為什么我無法得到這個summary.label?先感謝您
查看完整描述

1 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

http://img1.sycdn.imooc.com//64a664590001dfa106390195.jpg

該記錄沒有摘要對象。if您可以通過添加andconsole.log內部map函數來檢查這一點:


return this.state.movies.map((item) => {

      if (!item.summary) {

        console.log(item); // here

      }

      return (

        <div key={item.title.label}>

          <div>

            <span>{item.title.label}</span>

            <span>{item.category.attributes.term}</span>

          </div>

          <div>

            <img src={item["im:image"][2].label} alt={item.title.label} />

            <div>

              <video

                onMouseEnter={this.mouseEnter}

                onMouseLeave={this.mouseLeave}

                controls

              >

                <source src={item.link[1].attributes.href} type="video/x-m4v" />

              </video>

            </div>

          </div>

          {item.summary ? <div>{item.summary.label}</div> : null}

        </div>

      );

    });

你應該像這樣顯示它:


{item.summary ? <div>{item.summary.label}</div> : null}


查看完整回答
反對 回復 2023-07-06
  • 1 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號