javascript - 无法在网页上看到下拉菜单?
问题描述
嗨,我想创建一个下拉菜单,它将显示与下拉值相关的数据列表。但我无法在网页上看到下拉菜单,也没有错误,所以我无法确定我在做什么错了。所以有人求助
这是 App.js
class App extends Component {
constructor(props) {
super(props)
this.state = {
list: [],
value: "",
display: false
}
}
// show=props => {
// const {person} = props
// }
handleChange = e => {
this.setState({value: e.target.value})
}
componentDidMount = () => {
axios.get('https://api.github.com/users/supreetsingh247/repos').then(res => {
const list = res.data
const tile = res.data
this.setState({list, tile})
console.log(this.state.list)
console.log(this.state.value)
})
}
render() {
const message = this.state.value
const handleFilter = this.state.list.filter(x => x.name.indexOf(this.state.value) !== -1)
const filter= this.state.list.filter(x => x.language ===message)
return (
<div>
{ console.log(filter)}
{filter.map(list => <li key = {list.id}>
{list.language}
<Dropdown list = {list} />
</li>
)}
<div> {
handleFilter.map(person => <li key={
person.id
}>
{
person.language
},{
person.name
}</li>)
}
<input onChange={
this.handleChange
}></input>
</div>
</div>
)
}
}
export default App;
这是 dropdown.js
class DropDown extends Component {
constructor(props) {
super(props)
this.state = {
value:"",
display:false
}
this.showDropdown = this.showDropdown.bind(this)
this.hideDropdown = this.hideDropdown.bind(this)
}
handleChange = e => {
this.setState({value: e.target.value})
}
showDropdown(e) {
e.preventDefault()
this.setState({
display: true
}, () => {
document.addEventListener("click", this.hideDropdown)
})
}
hideDropdown(e) { // e.preventDefault()
this.setState({
display: false
}, () => {
document.addEventListener("click", this.hideDropdown)
})
}
render() {
const message = this.state.value
return(
<div>
<div onClick={this.showDropdown}>
language:All
</div>
<div >
{/* {filter.map(files=> ( */}
{this.state.display ? (
<select value = {this.state.value} onChange={this.handleChange}>
<option className="language_item" value="JavaScript">javascript</option>
<option className="language_item" value="HTML">html</option>
<option className="language_item" value="CSS">css</option>
</select>
) : (null)
}
{/* ))} */}
{console.log(message)}
<p>{message}</p>
</div>
</div>
)
}
}
export default DropDown
解决方案
推荐阅读
- c# - 拆分多字字符串时,如何在不包含数字的单词之间保留空格?
- python - 根据两个不同数据框中的数据填充列
- ios - flutter sdk 2.5.3 permission_handler(^8.2.5) 状态值错误
- c++ - 具有 1 个循环的函数的复杂性
- python - 使用 scipy.optimize.curve_fit 进行多处理挂起
- python - 导入 vtk ModuleNotFoundError:没有名为“vtkCommonCorePython”的模块
- c - 如何查找数据类型是否为结构?
- java - Keycloak,无法获取复合角色管理客户端
- python - 提取文件中两个句子之间的行
- spring-boot - Sleuth tracer.currentSpan() 在 WebFlux WebFilter 中为空