【问题标题】:TypeError while using 'includes' function使用“包含”功能时出现类型错误
【发布时间】:2022-01-20 22:38:36
【问题描述】:

我正在用 React 写一个网页。

我调用 API,一切正常。 我的请求的 json 响应中有一个“错误”属性。

组件结束:

 const er = data.Error
        return <p> {er} </p>

我可以在网页上看到正确的错误消息。

但是当我写这样的东西时:

if(data.Error.includes('specific error message...')
        return <p> 'specific error message...' </p>

我收到以下消息:

TypeError: Cannot read properties of undefined (reading 'includes')

所有组件:

import React from "react";
import Movie from "./Movie";
import { useEffect, useState } from 'react';


export default function MovieList({searchValue}) {
    const [data, setData] = useState([])
    //Onmount
    useEffect(() => {
        async function init() {
      //API Calls- request data from the server
        const response = await fetch('http://www.omdbapi.com/?apikey=ca0aa516&s=' + searchValue);
        const body = await response.json();
        setData(body);
     }
    init()
    
     }, [searchValue])

     console.log(data)
    if(data.Search) {
        return (
            <div className="container-fluid movie-app" >
                <div className="row">        
                    { 
                          data.Search.map((movie) => {    
                            return (
                                <Movie link={movie.Poster} />
                                )
                        })
                    } 
                </div>
            </div>
              
        )
    }
   
    const er = data.Error
    
        return <p> {er} </p>
    
  }

【问题讨论】:

  • 请把完整的代码放在这里帮助你
  • 它说错误未定义!
  • @HDM91 使用可选链或在使用包含之前检查错误可以修复错误
  • @Farzaneh Pichlou 你说得对,但我想知道为什么它是未定义的
  • @HDM91 您没有任何错误,您的请求成功

标签: reactjs components include


【解决方案1】:

您必须进行编辑:

if(data?.Error?.includes('specific error message...'))

if(data.Error &amp;&amp; data.Error.includes('specific error message...'))

【讨论】:

  • 工作!谢谢!也许你有一个解释为什么它解决了这个问题?
  • @amit 欢迎,您在访问嵌套属性的同时错误键未定义。
  • @amit 请检查答案 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 2018-07-11
  • 1970-01-01
  • 2021-09-06
  • 2011-10-17
  • 2017-06-15
  • 1970-01-01
相关资源
最近更新 更多