我创建了一个存储数据的应用程序,但当我完成提示符输入时,我得到了这个错误:

这是我的CptList.js
import React, { Component } from 'react';
import { Container, Button } from 'reactstrap';
import uuid from 'uuid';
export default class CpdList extends Component{
state = {}
handleClick = () => {
const date = prompt('Enter Date')
const activity = prompt('Enter Activity')
const hours = prompt('Enter Hours')
const learningStatement = prompt('Enter Learning Statement')
const evidence = prompt('YES! or NO!')
this.setState(state => ({
items: [
...state.items,
{
id: uuid(),
date,
activity,
hours,
learningStatement,
evidence
}
]
}));
}
render() {
const { items } = this.state;
return (
<Container>
<Button
color='dark'
style={{marginBottom: '2rem'}}
onClick={this.handleClick}
>Add Data</Button>
<Button
color='dark'
style={{marginBottom: '2rem'}}
onClick={() => { this.handleClick(items._id) }}
>Delete Data</Button>
</Container>
);
};
};有人能告诉我我做错了什么吗?我的删除功能也有问题,这是我在后台的删除代码:
//Delete a Item
router.delete('/:id', (req, res) => {
Item.findById(req.params.id)
.then(item => item.remove().then(() => res.json({ success: true })))
.catch(err => res.status(404).json({ success: false }));
});发布于 2019-12-02 18:10:09
我认为你必须用以下参数来初始化状态:
state = { items:[] }第一次将项添加到未定义的空列表时。
此外,我认为在某个地方丢失了一个state.items.map (至少对于delete按钮)
发布于 2019-12-02 18:26:50
state = [] // convert to array beacuse use map() or other javascipt method
this.setState(state => ({
items: [
// do not speard maybe
{
id: uuid(),
date,
activity,
hours,
learningStatement,
evidence
}
]
}));请写handleClick函数告诉我工作或不工作
https://stackoverflow.com/questions/59136380
复制相似问题