【发布时间】:2021-08-17 23:47:39
【问题描述】:
首先,对于令人困惑的标题,我们深表歉意。我找不到更清楚的表达方式。
这些天来,我正在处理自己的项目并面临一个问题。如果你能给我一些 建议,对我有很大帮助。
所以,这就是我的国家
const[state, setState] = useState({
externalEvents: [
{ title: "Art 1", color: "#0097a7", id: 34432, custom: "fdsfdsfds" },
{ title: "Art 2", color: "#f44336", id: 323232 },
{ title: "Art 3", color: "#f57f17", id: 1111 },
{ title: "Art 4", color: "#90a4ae", id: 432432 },
]
});
这是我的输入标签和功能
<form className="todoinput" onSubmit={addTodo} >
<input type="text" value={title} onChange={e=>setTitle(e.target.value)} placeholder="Add event" />
<input type="text" value={custom} onChange={e=>setCustom(e.target.value)} placeholder="detail" />
<select>
<option value={()=>{setColor('blue')}}>blue</option>
<option value={()=>{setColor('orange')}}>orange</option>
<option value={()=>{setColor('green')}}>green</option>
<option value={()=>{setColor('purple')}}>purple</option>
</select>
<button type="submit">Add todo</button>
</form>
const addTodo = (e) =>{
e.preventDefault();
setState([...state.externalEvents,{title:{title}, color: {color}, custom: {custom}}])
setTitle('')
setCustom('')
}
这就是我想做的:我在输入中输入标题、自定义并选择颜色并选择标签。然后我提交它,然后函数将在 externalEvents(array) 中添加新对象 我使用 spread 来做到这一点,但不知何故它不起作用,控制台说“TypeError:无法读取未定义的属性'map'”
<div id="external-events">
{state.externalEvents.map((event) => (
<div
className="fc-event"
title={event.title}
data-id={event.id}
data-color={event.color}
data-custom={event.custom}
key={event.id}
style={{
backgroundColor: event.color,
borderColor: event.color,
cursor: "pointer"
}}
>{event.title}</div>
))}
</div>
这是 map() 发生的部分,我认为 map 无法读取属性的原因是因为 我未能向 externalEvents 发送正确的属性。
感谢您的阅读,我们将不胜感激。
p.s 我使用了 FullCalendar 库!
【问题讨论】:
标签: javascript reactjs fullcalendar