问题描述
这是您可以在此 URL 上看到的本地 JSON 服务器 http://localhost:3003/CourseList/1 我的钩子
const [subjectName,setsubjectName]=useState(
{
id: "",subjectname: "Aptitude",chapter: [
{
chapter1: "",topic: [
{
topic1: ""
}
]
}
]
}
);
当我点击添加按钮时的功能,它将检查它是否与道具的 id 匹配,然后它将执行任务
const addSubject = async id => {
console.log("id "+id);
axios.get(`http://localhost:3003/CourseList/`)
.then((res)=>{
res.data.map((list,index)=>{
if(list.id===props.id){
console.log(list.subject)
list.subject.push(subjectName);
}
})
})
.catch((error)=>{
console.log(error);
})
};
如何在主题数组中推送新数据?我什么都没有
解决方法
如果您使用的是 JSON 服务器,它应该有一个 PATH/PUT
新对象的默认端点。您需要在请求标头中发送 Content/Type: application/json
并在服务器中设置 jsonServer.bodyParser
。
解决办法
const addSubject = 异步 ID => { console.log("id "+id);
try{
const {data} = await axios.get("http://localhost:3003/CourseList")
data.map(async(item)=>{
if(item.id===id){
console.log(item);
item.subject.push(subjectName);
await axios.put(`http://localhost:3003/CourseList/${id}`,item)
}
})
const check= await axios.get(http://localhost:3003/CourseList/${id})
console.log(check)
}catch(err){
console.log(err.message)
}
};