import React from 'react';
import {Jumbotron} from 'react-bootstrap';
import axios from 'axios';
import './App.css'
export default class Form extends React.Component{
state={
user:[],
firstname:'',
lastname:'',
}
handleChange = event => {
this.setState({firstname:event.target.value});
this.setState({lastname:event.target.value});
}
handleSubmit = event =>{
event.preventDefault();
axios.post('http://9795ca45.ngrok.io/api/Docs',{
fname:this.state.firstname,
lname:this.state.lastname
})
.then( res => {
console.log(res);
console.log(res.data);
})
.catch((error) =>{
alert(error);
})
}
componentDidMount(){
axios.get('http://9795ca45.ngrok.io/api/Docs')
.then(res =>{
const data=res.data;
const user = data.data;
this.setState({user});
})
.catch((error) =>{
alert(error);
})
}
render(){
return(
<div>
<Jumbotron>
<form onSubmit={this.handleSubmit}>
<label>
firstName:
<input type="text" name="firstname" onChange={this.handleChange} />
</label>
<label>
LastName:
<input type="text" name="lastname" onChange={this.handleChange} />
</label>
<button type="submit">add</button>
</form>
<h1> names </h1>
<ul> {this.state.user.map(person => <li> {person.lname}</li>)}</ul>
</Jumbotron>
</div>
)
}
}
对于reatjs来说,这是一个新手
我试图将数据发布到网址,但我收到请求未找到500错误
我用调试器看到了这一点
警告:数组或迭代器中的每个子节点都应该有一个唯一的&#34;键&#34;丙
检查Form
的渲染方法。
请帮我离开这个
从网址获取数据 但我无法发布数据
请检查并更正我的代码并附上说明
答案 0 :(得分:3)
正如here所写:
键帮助React识别哪些项目已更改,已添加或已删除。应该给出数组内部元素的键,以赋予元素稳定的标识
您需要将键添加到要在地图中呈现的列表中。 你的代码应该是这样的:
<ul> {this.state.user.map(person => <li key={person.lname}> {person.lname}</li>)}</ul>
我建议将密钥设置为唯一ID而不是姓氏,因为它对每个人来说都不是唯一的。