【发布时间】:2021-01-05 11:50:52
【问题描述】:
events.jsx
export default function Event({eventForm,setEventForm}) {
const[data,setData]=useState(sampleData);
function HandleCreateEvent(event) {
setData(...data,event)
}
return(
<Fragment>
<Grid>
<Grid.Column width={10}>
<EventList events={data}/>
</Grid.Column>
<Grid.Column width={6}>
{
eventForm &&
<EventForm setEventForm={setEventForm} setData={setData} createEvent={HandleCreateEvent}/>
};
</Grid.Column>
</Grid>
</Fragment>);
}
eventlist.jsx
export default function EventList({events}){
return(
<Fragment>
{events.map(event=>
<EventListItem key={event.id} event={event}/>
)}
</Fragment>
);
}
EventForm.jsx
export default function EventForm({setEventForm ,setData, createEvent})
{
const initialValues=
{
title:'',
company:'',
description:'',
city:'',
venue:'',
date:''
}
const[values,setValues]=useState(initialValues);
function handleFormSubmit()
{
createEvent({...values,id:cuid(), hostedBy:"bob", attendees:[], hostPhotoURL:"/assets/default.png"});
setEventForm(false);
}
function handleInputSubmit(e)
{
const{name,value}=e.target
setValues({...values,[name]:value});
}
从 eventform.jsx 我以 JSON 格式传递数据并在 event.jsx 中接受它,然后在 Eventlist.jsx 中恢复它,但在 eventList.jsx 中显示错误。我正在这个函数中创建事件。
【问题讨论】:
-
好吧,我的道具没有任何问题
-
github.com/Alphonse-03/events-manager这是链接,你可以看看吗
-
这里有错误setData(...data,event),如果要添加新事件,应该是setData([...data,event])。您收到错误是因为您使用的是逗号运算符,在这种情况下,事件将等于最后一个操作数(事件)
标签: javascript reactjs rxjs react-router