javascript - 使用 axios 请求从服务器填充表单数据
问题描述
所以我试图用我的服务器中的数据填充一个表单。服务器返回就好了。所有字符串。我希望每个表单字段都填充数据库中的当前详细信息。
我尝试了以下方法:
- 在 useEffect 中设置每个状态函数,但这不允许我更改表单数据
设置默认值,但这仅适用于
表单的一个实例,然后变回function Dashboard(props) { const { classes } = props; let user = firebase.getCurrentUser(); let id = user.uid; const [profile, setProfileData] = useState(''); useEffect( () => { axios.get('https://www.memento-wedding.com/user/' + id) .then(response => { setProfileData(response.data); }) console.log(profile.gender); }); const [firstName, setFirstName] = useState('') const [lastName, setLastName] = useState(''); const [date, setDate] = useState(''); const [gender, setGender] = useState(); return ( <div className="form"> <h1 className="white center">Welcome, {firebase.getCurrentUsername()}!</h1> <h1 className="white center">Create a Profile</h1> <Form onSubmit={e => e.preventDefault() && false}> <Row form> <Label for="firstName" sm={3} className="white right">First Name</Label> <Col sm={6}> <Input type="text" name="firstName" id="name" value={firstName} onChange={e=>setFirstName(e.target.value)}/> </Col> <Col sm={1}></Col> </Row> <br></br> <Row form> <Label for="firstName" sm={3} className="white right">Last Name</Label> <Col sm={6}> <Input type="text" name="firstName" id="name" value={lastName} onChange={e=>setLastName(e.target.value)}/> </Col> <Col sm={1}></Col> </Row> <br></br> <Row form> <Label for="email" sm={3} className="white right">Email</Label> <Col sm={6}> <Input type="email" name="email" id="email" disabled value={profile.email}/> </Col> </Row> <br></br> <Row form> <Label for="birthday" sm={3} className="white right">Birthday</Label> <Col sm={6}> <Input type="date" name="date" id="date" value={date} onChange={e=>setDate(e.target.value)}/> </Col> </Row> <br></br> <Row> <Label for="gender" sm={3} className="white right">Gender</Label> <Col md={5} sm={7}> <RadioButtons gender={gender} setGender={e=>setGender(e.target.value)} /> </Col> </Row> </Form> )
}
解决方案
请添加过滤条件[]
useEffect( () => {
axios.get('https://www.memento-wedding.com/user/' + id)
.then(response => {
setProfileData(response.data);
})
console.log(profile.gender);
},[]);
推荐阅读
- c# - 验证服务 ASP.NET CORE MVC (c#) 中的重复电子邮件条目
- javascript - li a:focus,当我在 iframe 中单击时防止焦点丢失
- firebase - 未处理的异常:类型“int”不是颤振中“字符串”类型的子类型
- reactjs - 反应 mapbox 图层,图标未出现
- swift - 获取请求后对CoreData实体进行排序的任何方式?
- eclipse - 如何将 pyDev 项目集成或嵌入到 Mule 或 Java 项目中
- machine-learning - 图神经网络中的转导与归纳
- python - Tesseract ocr 输出在检测到的文本之间带有单个字符
- arduino - 当点亮 8x8 矩阵中的特定 LED 时,整列不会关闭 Arduino Uno
- r - 3D散点图与R中的Plotly无线