如何在 React 中使用方法 POST 将对象添加到数据库?
How add object to database use method POST in React?
预期结果:创建假API --> 调用函数save
--> 方法POST --> 保存对象time
到this.state.resul
--> 保存 db.json todos id 2
我正在使用图书馆 Fake an API with JSON Server
。
db.json
{
"todos": [
{
"id": 1,
"title": "AAAA"
"results": [
{
"time": "09:10:01",
"desc": "bbbbb"
},
{
"desc": "gfgfgfgffg",
"time": "21:30:06"
}
]
},
{
"id": 2,
"title": "BBBBBBB",
"results": [
{
"time": "09:10:01",
"desc": "reerrererer",
},
{
"desc": "dfdfdfdfdfdfdfdfdfdfdf",
"time": "21:30:06"
}
]
}
}
待办事项
class Todos extends Component {
constructor (props) {
super(props);
this.state = {
todos: []
}
}
componentDidMount() {
axios.get("http://localhost:3000/todos")
.then(response => {
this.setState({
todos: response.data
});
})
.catch(error => {
console.log('Error);
}
);
}
render () {
return(
)
}
}
export default Todos;
秒表
class StopWatch extends Component {
constructor() {
super();
this.state = {
resul: []
};
}
save = () => {
const resul = this.state.resul;
this.clock = {
clock: this.clock
}
resul.push(this.clock);
this.setState({
resul
});
axios.post(`http://localhost:4000/todos/2`, {
results: this.clock
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}
}
render () {
return (
<ul className="results">
{
this.state.resul
.map((item, index) =>
<Time
key= {index}
/>
)
}
</ul>
);
}
}
export default StopWatch;
使用put
更新数组,传递你要更新的整个对象。
save = () =>{
const resul = JSON.parse(JSON.stringify(this.state.resul));
this.clock = {
clock: this.clock
};
resul.push(this.clock);
this.setState({
resul
});
const todo = {
id: 2,
title: 'BBBBBBB',
results: resul
};
axios
.put(`http://localhost:4000/todos/2`, todo)
.then(function(response) {
console.log(response);
})
.catch(function(error) {
console.log(error);
});
}
预期结果:创建假API --> 调用函数save
--> 方法POST --> 保存对象time
到this.state.resul
--> 保存 db.json todos id 2
我正在使用图书馆 Fake an API with JSON Server
。
db.json
{
"todos": [
{
"id": 1,
"title": "AAAA"
"results": [
{
"time": "09:10:01",
"desc": "bbbbb"
},
{
"desc": "gfgfgfgffg",
"time": "21:30:06"
}
]
},
{
"id": 2,
"title": "BBBBBBB",
"results": [
{
"time": "09:10:01",
"desc": "reerrererer",
},
{
"desc": "dfdfdfdfdfdfdfdfdfdfdf",
"time": "21:30:06"
}
]
}
}
待办事项
class Todos extends Component {
constructor (props) {
super(props);
this.state = {
todos: []
}
}
componentDidMount() {
axios.get("http://localhost:3000/todos")
.then(response => {
this.setState({
todos: response.data
});
})
.catch(error => {
console.log('Error);
}
);
}
render () {
return(
)
}
}
export default Todos;
秒表
class StopWatch extends Component {
constructor() {
super();
this.state = {
resul: []
};
}
save = () => {
const resul = this.state.resul;
this.clock = {
clock: this.clock
}
resul.push(this.clock);
this.setState({
resul
});
axios.post(`http://localhost:4000/todos/2`, {
results: this.clock
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}
}
render () {
return (
<ul className="results">
{
this.state.resul
.map((item, index) =>
<Time
key= {index}
/>
)
}
</ul>
);
}
}
export default StopWatch;
使用put
更新数组,传递你要更新的整个对象。
save = () =>{
const resul = JSON.parse(JSON.stringify(this.state.resul));
this.clock = {
clock: this.clock
};
resul.push(this.clock);
this.setState({
resul
});
const todo = {
id: 2,
title: 'BBBBBBB',
results: resul
};
axios
.put(`http://localhost:4000/todos/2`, todo)
.then(function(response) {
console.log(response);
})
.catch(function(error) {
console.log(error);
});
}