ajax - 使用 axios get React 时状态不更新
问题描述
我想使用来自 API 的数据进行选择输入。所以我使用 axios 从服务器接收数据并保存到状态。但是当我使用 this.setState 时,状态没有更新。我不能在渲染方法中使用它。你能帮我解决我的问题吗
import React from "react";
import axios from "axios";
import AddCFRulesCss from "../css/addclub.module.css";
import Container from "react-bootstrap/Container";
import Form from "react-bootstrap/Form";
class AddCFRules extends React.Component {
constructor(props) {
super(props);
this.state = {
dataMusim: [],
musim: ""
};
}
componentDidMount() {
axios.get('http://localhost:80/skripsi2/getallseason.php')
.then(res => {
const response = res.data;
this.setState({ dataMusim: response });
})
.catch(error => console.log(error))
}
render() {
return (
<Container fluid="xs" className={AddCFRulesCss.container}>
<Form className={AddCFRulesCss.form}>
<p className={AddCFRulesCss.form__title}>tambah aturan CF</p>
<Form.Group>
<Form.Label>Pilih Musim</Form.Label>
<Form.Control as="select" name="musim" required>
{this.state.dataMusim.map(musim => {
return (
<option key={musim.id} value={musim.nama}>
{musim.nama}
</option>
);
})}
</Form.Control>
</Form.Group>
<button type="submit" className={AddCFRulesCss.form__button}>
tambah aturan CF
</button>
</Form>
</Container>
);
}
}
export default AddCFRules;
解决方案
解决我忘记在地图中添加()
前 :
{this.state.dataMusim.map(musim => {
return (
<option key={musim.id} value={musim.nama}>
{musim.nama}
</option>
);
})}
后 :
{this.state.dataMusim.map((musim) => {
return (
<option value={musim.musim} key={musim.id}>{musim.musim}</option>
);
})}
推荐阅读
- sockets - 验证服务是否连接到 pod?
- c# - 读取或将 17 位时间戳转换为日期时间格式 C#
- vespa - 子组分布键很奇怪
- android-studio - gradle 项目同步失败。基本功能
- c++ - 为什么在不抛出 C++ 的情况下捕获异常?
- java - SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)
- swiftui - NavigationLink 标记和选择未按预期工作
- angular - Angular EventEmitter 不适用于某些延迟加载的模块
- javascript - 如何打开从 axios 收到的 csv 文件在新窗口中获取响应
- javascript - 无法解构“this.props.data”的属性“聊天”,因为它未定义