javascript - 如何输出 id 与所选数据 ID 匹配的数据?
问题描述
我想根据用户在下拉菜单中选择的内容输出一个列表。菜单中的每个类型都有一个唯一的 ID,就像所有单独的电影一样。我遇到的问题是连接两者或创建一个函数来输出我想要的结果。
到目前为止,当您选择一个流派时,它只输出所选流派 ID 号。我还制作了一个单独的列表,输出随机电影及其信息,但两者没有联系。您可以使用movie.genre_ids 调用各个动作。
componentDidMount() {
this.getMovies();
this.getGenres();
fetch(BASE_URL)
.then(response => {
return response.json().then(json => {
return response.ok ? json : Promise.reject(json);
});
})
.then((data) => {
var movies = [];
console.log('Success', JSON.stringify(data));
movies.push({"movieinfo":data})
this.setState({movies : data.results,loading:false});
alert("Total pages= " + data.total_pages)
})
.catch((error) => {
alert(error);
});
}
handleGenreChange(e) {
this.setState({ selectedGenre: e.target.value})
}
render() {
return (
<div class="list-style">
<select type='text' value={this.state.selectedGenre}
onChange={this.handleGenreChange}>
{this.state.genres.map((item, index)=>(
<option key={item.id} value={item.id}>{item.name}</option>
))}
</select>
{this.state.selectedGenre}
</div>
所以基本上我想创建一个函数,只将具有匹配 ID 的电影输出到所选的流派 ID。我一直在尝试各种方法来做到这一点,但我觉得我把一切都复杂化了。(我对此非常陌生,所以请原谅我没有使用正确的术语,可能会问一个愚蠢的问题。)
解决方案
您需要做的是您需要检查流派数组是否存在选定的 ID,如果存在,则将 selectedGenre 设置为 ID 和名称的对象。
handleGenreChange(e) {
this.state.genres.map((item, index)=>(
if(item.id === e.target.value) {
this.setState({
selectedGenre: item
})
}
))
}
您还需要<select>
如下所述更改值并打印电影的名称,如下所示
<div class="list-style">
<select type='text' value={this.state.selectedGenre.id}
onChange={this.handleGenreChange}>
{this.state.genres.map((item, index)=>(
<option key={item.id} value={item.id}>{item.name}</option>
))}
</select>
{this.state.selectedGenre.name}
</div>
我希望这对你有用
推荐阅读
- excel - MS Excel:将日期标准化为一种格式
- react-native - 向上滚动 FlatList 反应原生时如何获取更多数据?
- haskell - Monad中的do符号在Haskell中是什么意思
- swiftui - SwiftUI:未应用对齐
- android - leakcanary FirestoreRecyclerAdapter 内存泄漏
- javascript - 如何在 react-native-mapbox-gl 中获取用户位置?
- linux - 审计日志的 Logstash 过滤器模式?
- android - Listview 仅为第一个位置设置文本
- html - 将版本号添加到图像路径?可能吗?
- wordpress - WhatsApp WordPress 插件