reactjs - 使用菜单项 React-MaterialUI-Firebase 选择
问题描述
我的问题是,选择以下选项时,它不会更改,无论我选择哪一个,它都保持在相同的选项中。
export default class Especialidad extends React.Component{
state= {
data: [],
especialidad:'',
}
peticionGet = () => {
firebase.child("especialidad").on("value", (especialidad) => {
if (especialidad.val() !== null) {
this.setState({ ...this.state.data, data: especialidad.val() });
} else {
this.setState({ data: [] });
}
});
};
handleChange=e=>{
this.setState({
[e.target.name]: e.target.value
})
}
componentDidMount() {
this.peticionGet();
}
render(){
return (
<center>
<FormControl >
<InputLabel shrink id="demo-simple-select-placeholder-label-label">Especialidad</InputLabel>
<Select labelId="demo-simple-select-placeholder-label-label" id="demo-simple-select-placeholder-label1" onChange={this.handleChange} displayEmpty>
{Object.keys(this.state.data).map(i=>{
// console.log(i);
return <tr key={i}>
<MenuItem name="especialidad" value={i}>{this.state.data[i].especialidad}</MenuItem>
</tr>
})}
</Select>
<FormHelperText>Escoger especialidad</FormHelperText>
</FormControl>
</center>
);
}
}
在这种情况下,选择心脏病学不会改变。 在此处输入图像描述
更新更改
将handlechange改成handleChange=e=>{ this.setState({[e.target.especialidad] : e.target.value} ) }
新的问题是:
{Object.keys(this.state.data).map(i=>{
//console.log(this.state.data[i].ids);
return <tr key={this.state.data[i].ids}>
<MenuItem key={this.state.data[i].ids} value={this.state.data[i].ids}>{this.state.data[i].especialidad}</MenuItem>
</tr>
})}
此代码显示所有变量,但在更改其他选项时,没有捕获 id,仅捕获最后一个 id
解决方案
推荐阅读
- json - 如何使用复杂的 JSON 和 FTL 进行迭代
- android - 自定义共享功能 - 应用程序如何使用用户设备上另一个应用程序使用的相同登录实例
- javascript - 在 React 中将文本放在 div 的底部
- javascript - Form.Dropdown 语义 ui- 将不完整的字段显示为红色并带有错误消息
- r - 数据集名称为字符串以及如何评估它们
- python - 如何从opencv中的图像中删除多余的空格?
- python - 试图让我的不和谐机器人在 python 中每 5 秒说一次相同的消息
- linux - Mysql 不会开始使用 Dockerfile
- kubernetes - CIDR 和 IP 地址范围
- python - BigQuery:如何通过 TableReference 设置`require_partition_filter`