我正在用Reactjs开发一个应用程序。在其中,我有一个API,可从AWS数据库表中获取数据并填充状态数组,然后填充状态表。 我无法弄清楚如何让用户依次更新表的值,然后保存这些更改,然后让API将其上传回数据库。 我有一个update方法,但是它给出了一个错误消息,提示我无法更新状态Array或会抱怨列数组未定义。
我有以下代码:
export default function Complaints(props) {
const [complaint,setComplaint] = useState([]);
const [isLoading,setIsLoading] = useState(true);
const [isInEditMode,setIsEditMode] = useState(false);
const [defaultvalue,setDefaultvalue] = useState("");
var columsArr = [
{ title: 'Customer ID',field: 'id' },{ title: 'Issue',field: 'complaintName' },{ title: 'Description',field: 'complaintDescription'},{ title: 'Order ID',field: 'complaintOrderId'},{ title: 'Submitted',field: 'createdAt'},{ title: 'Updated',field: 'updatedAt'},{ title: 'Admin Comment',field: 'adminComment'},];
useEffect(() => {
async function onLoad() {
if (!props.isAuthenticated) {
return;
}
try {
const complaint = await loadComplaint();
setComplaint(complaint);
setState({
columns: [state.columns,...columsArr],complaint: [...state.complaint,...complaint]
});
console.log(complaint)
} catch (e) {
alert(e);
}
setIsLoading(false);
}
onLoad();
},[props.isAuthenticated]);
function loadComplaint() {
return API.get("kleen","/Complaint");
}
// function edit(adminComment) {
// setIsEditMode(true);
// setDefaultvalue(adminComment);
// console.log("value is"+ adminComment);
// }
// function updateComplaint() {
// return API.put("kleen",`/Complaint/${props.}`);
// }
const [state,setState] = React.useState({
columns: [],complaint: []
});
return (
<MaterialTable style={{
marginTop: "8rem",marginLeft: "auto",marginRight: "auto",position: "sticky",}}
title="Complaints"
columns={state.columns}
data={state.complaint}
editable={{
onRowUpdate: (newData,oldData) =>
new Promise(resolve => {
setTimeout(() => {
resolve();
if (oldData) {
let key = 1;
setState(prevState => {
complaint: prevState.complaint.map(el => el.key === key ? {...el,adminComment: "testing"}: el)
// const data = [...prevState.data];
// data[data.indexOf(oldData)] = newData;
// return { ...prevState,data };
});
}
},600);
}),}}
/>
);
}
我对Reactjs非常陌生,任何帮助将不胜感激。