作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
React 新手。我试图保持一个跟踪一系列日历事件的状态。我将状态设置为某个 dummyData,如果将新的日历事件传递给 UserEvents(props),那么我想将其添加到 calendarList 状态。
它给出了一个错误,即 calendarList.push() 不是一个函数。当我 console.log 它是一个数组,所以我不明白为什么我不能在它上面使用 push() 方法。
import React, { useEffect, useState } from 'react';
import Countdown from '../countdown/Countdown';
function UserEvents(props){
let dummyData = [
{name: "birthday", date: '03/20/2021'},
{name: "christmas", date: '12/25/2020'},
{name: "thanksgiving", date: '11/26/2020'}
]
const [calendarList, setCalendarList] = useState(dummyData);
if(props.calendarItem){
setCalendarList(calendarList.push( props.calendarItem ));
}
return (
<div className="App">
{
calendarList.map((item, index) => {
return(
<Countdown name={item.name} date={item.date}></Countdown>
)
})
}
</div>
)
}
export default UserEvents;
最佳答案
.push
有2个问题:
setCalendarList(calendarList.push( props.calendarItem ));
会做类似
setCalendarList(4)
的事情
setCalendarList
无条件地每次渲染。
calendarItem
:
const [calendarList, setCalendarList] = useState([
...dummyData,
...(props.calendarItem ? [props.calendarItem] : [])
]);
(见
Add elements inside Array conditionally in JavaScript)
if
,使用效果 Hook :
useEffect(() => {
if (props.calendarItem) {
setCalendarList([
...calendarList,
props.calendarItem
]);
}
}, []);
关于reactjs - react useState 和 setState 声明 calendarList.push 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64596016/
我正在尝试添加一个新日历,我花了很长时间才弄清楚我必须将它添加到“日历”而不是“日历列表”。它现在可以工作了,这很好,但是我这两个概念之间有什么区别?在我看来我只需要日历?此外,CalendarLis
React 新手。我试图保持一个跟踪一系列日历事件的状态。我将状态设置为某个 dummyData,如果将新的日历事件传递给 UserEvents(props),那么我想将其添加到 calendarLi
我是一名优秀的程序员,十分优秀!