reactjs - 如何使用反应在表格的开头添加一行
问题描述
A 已经创建了一个表和一个向该表添加一行的表单,它工作正常,但是我不想将行添加到底部,而是添加为第一行。
什么是最好的解决方案?如果需要,我可以添加更多代码。
这是表格文件中组件中的代码:
//code
constructor(props) {
this.state = {
categories: [],
}
this.addCategory = this.addCategory.bind(this);
}
// code
addCategory(id, slug, title) {
this.setState(prevState => ({
categories: [...prevState.categories, {id, slug, title }]
}));
}
<CategoryForm
addCategory={this.addCategory} />
这是表格文件:
handleSubmit(event) {
event.preventDefault()
const form = event.target;
const id = ""
const title = form.elements["title"].value;
const slug = form.elements["slug"].value;
this.props.addCategory( id, slug, title);
form.reset();
}
// code
render() {
<Form onSubmit={this.handleSubmit} >
<Button>Submit</Button>
</Form>
}
解决方案
您可以简单地将新行附加到状态数组的开头而不是结尾。
this.setState(prevState => ({
categories: [{id, slug, title }, ...prevState.categories]
}));
推荐阅读
- c# - 使用 Google Play 测试膨胀类 android.support.design.widget.CoordinatorLayout 时出错
- python - 有没有办法根据文本文件中某个位置的内容来累加金额?
- nginx - 与 nginx 一起使用时,Daphne websocket 错误 200
- objective-c - 我是这种编码语言的新手,Json 解析故障排除
- swift - Swift Combine sink 值与 @Published 属性的值不同
- r - 基于字符串过滤和条件的dplyr转换
- javascript - 将鼠标悬停在 d3 地图中的文本上时如何继续显示工具提示
- php - 如何在 Laravel 中将验证设置为可选
- mysql - 为什么我的查询在尝试创建表时返回 SQL 语法错误 - MariaDB?
- excel - VBA - 使用 WorksheetFunction.SumIFs 的运行时错误 13 类型不匹配