简体   繁体   English

TypeError:无法读取未定义的属性“getFullYear”(反应)

[英]TypeError: Cannot read property 'getFullYear' of undefined (REACT)

Whenever I try adding a new element to the array I'm getting a TypeError: Cannot read property 'getFullYear' of undefined error hence why I'm not able to any new elements to the array每当我尝试向数组添加新元素时,我都会收到 TypeError: Cannot read property 'getFullYear' of undefined error 因此为什么我无法将任何新元素添加到数组中

import React, { useState } from "react";

import ExpenseItem from "./ExpenseItem";
import Card from "../UI/Card";
import ExpensesFilter from "./ExpensesFilter";
import "./Expenses.css";

const Expenses = (props) => {
  const [filteredYear, setFilteredYear] = useState("2020");

  const filterChangeHandler = (selectedYear) => {
    setFilteredYear(selectedYear);
  };

  const filteredExpenses = props.items.filter(expense => {
    return expense.date.getFullYear().toString() === filteredYear;
  });

  return (
    <div>
      <Card className='expenses'>
        <ExpensesFilter
          selected={filteredYear}
          onChangeFilter={filterChangeHandler}
        />
        {filteredExpenses.map((expense) => ( 
          <ExpenseItem             
            title={expense.title} 
            amount={expense.amount}
            date={expense.date}
          />
        ))}
      </Card>
    </div>
  );
};

export default Expenses;

you would get this error if your new Date() id name doesn't corresponds what you have before you call your .getFullYear method如果您的新 Date() id 名称与调用 .getFullYear 方法之前的名称不对应,您将收到此错误

for example {id: a1, name: repair, amount:6000, dates: new Date(2021-10-24)} - if your object looks like this and your code is this例如 {id: a1, name: repair, amount:6000, dates: new Date(2021-10-24)} - 如果您的对象看起来像这样并且您的代码是这样

const filteredExpenses = props.items.filter(expense => {
return expense.date.getFullYear().toString() === filteredYear;

}); });

you would get this error because the id name is dates and your calling a method with date instead of dates您会收到此错误,因为 id 名称是日期,并且您使用日期而不是日期调用方法

The error probably occurs on chrome, but not on firefox, right?该错误可能发生在 chrome 上,但不会发生在 firefox 上,对吧? If yes, this is because google removed the .date in chrome 16.如果是,这是因为谷歌在 chrome 16 中删除了.date

https://groups.google.com/a/chromium.org/g/chromium-html5/c/0aIsQuvfjuQ?pli=1 https://groups.google.com/a/chromium.org/g/chromium-html5/c/0aIsQuvfjuQ?pli=1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM