reactjs - React Bootstrap 远程行插入
问题描述
一旦成功存储在数据库中,我正在尝试将行插入表中。
我收到以下错误:
警告:列表中的每个孩子都应该有一个唯一的“关键”道具。
我已将“rowKey="id" 参数添加到表组件中,但我仍然面临同样的问题。
import React, { Component} from "react";
import editImage from '../../src/images/edit.png';
import './Payrolls.css';
import {BootstrapTable,TableHeaderColumn, RemoteInsertRow} from 'react-bootstrap-table';
import '../../node_modules/react-bootstrap-table/css/react-bootstrap-table.css'
import { Link } from 'react-router-dom'
import axios from "axios";
var currentComponent = null;
class Payrolls extends Component {
componentDidMount() {
this.getData();
}
constructor(props, context) {
super(props, context);
this.tableData = [Array]
this.state = {
tableData: [],
selected: []
};
this.getData = this.getData.bind(this);
this.onAddRow = this.onAddRow.bind(this);
}
getData = () => {
var self=this;
axios.get('http://******.co.uk/payrolls.php', {
})
.then(function (response) {
self.state.tableData.push(response.data)
self.setState({tableData: response.data});
})
.catch(function (error) {
self.props.history.push('/login');
console.log(error);
});
}
dateValidator(value, row) {
if(value === ""){
return 'You must select a date!';
}else{
return true;
}
}
onAddRow = (row) => {
// Save to server and on success:
this.state.tableData.push(row)
this.setState({
tableData: this.tableData
});
}
render() {
const { tableData } = this.state;
const selectRowProp = {
mode: 'checkbox'
};
function editButton(cell, row){
if(row.status !== "Complete") {
return (<img alt="logo" className="imageIcon" src={editImage}/>);
}
}
return (
<div className="grid-item-dashboard-title">
Active Payrolls
</div>
<div className="payroll-table">
<BootstrapTable data={ this.state.tableData } remote={ true } insertRow={ true } pagination={ true } deleteRow={ true } selectRow={ selectRowProp } options={ { onAddRow: this.onAddRow } } striped hover rowKey="id">
<TableHeaderColumn dataField='id' autoValue ={true} isKey={ true } hidden hiddenOnInsert>Payroll ID</TableHeaderColumn>
<TableHeaderColumn dataAlign="center" dataField='creation_date' hiddenOnInsert>Creation Date</TableHeaderColumn>
<TableHeaderColumn dataAlign="center" dataField='created_by' hiddenOnInsert>Created By</TableHeaderColumn>
<TableHeaderColumn dataAlign="center" dataField='week_ending' editable={ { type: 'date' ,validator: this.dateValidator} } >Week Ending</TableHeaderColumn>
<TableHeaderColumn dataAlign="center" dataField='status' hiddenOnInsert>Status</TableHeaderColumn>
<TableHeaderColumn dataAlign="center" dataFormat={editButton}></TableHeaderColumn>
</BootstrapTable>
</div>
</div>
);
}
}
export default Payrolls;
解决方案
推荐阅读
- sql-server - 在使用 Ola Hallengren 创建备份后删除 Linux SQL Server 2017 的旧数据库备份?
- batch-file - 在 dos4gw 中回显 %errorlevel%
- reactjs - React Apollo Client - 在查询数据进入缓存之前修改它
- google-api - 执行 Batch API 以将多个用户添加到多个组
- sql - 如何在此查询的这一部分中使用标签?
- vb.net - Lotusscript 将 base64 编码的字符串保存到文件 (DLL)
- mysql - 在python中插入多个数据框时没有从mysql获取值
- javascript - 如何修复此代码中的“前缀未定义”
- c# - 如何使用 ASP.NET 技术在 Facebook 墙上分享 .mp4 视频?
- r - `rhandsontable` 包中的 `hot_to_r()` 函数在“正常”.R 脚本中不起作用 - 如何检查闪亮数据的方面?