javascript - ReactJS:来自道具的onClick函数不适用于li元素
问题描述
您好,我通过道具将 onLocationSelect 函数传递给名为“DropDownSearch”的组件,但是每当我尝试单击 li 元素时,onLocationSelect 不会被调用...
li 元素中的 div 在某种意义上是否会“覆盖” li 元素不被点击?还是这里有不同的错误?
// CreateGame.js
onLocationSelect(location) {
this.setState({ selectedLocation: location });
console.log(location);
}
render() {
return (
<h3>Location</h3>
<div className="create-game-inputs">
<DropDownSearch
fetchYelpBusinesses={yelpSearch}
location={this.state.location}
yelpSearchResults={this.props.yelpSearchResults}
onLocationSelect={this.onLocationSelect}
/>
</div>
)
}
// DropDownSearch.js
renderSearchResults(results) {
return results.map(item => {
return (
<li
name="dds-item"
key={item.id}
onClick={() => this.props.onLocationSelect(item)}
>
<div className="dds-item-img">
<img src={item.image_url} alt={item.name} />
</div>
<div className="dds-item-info">
<div className="dds-item-name">{item.name}</div>
<div className="dds-item-address">
{item.location.address1},{item.location.city},
{item.location.state}
</div>
</div>
</li>
);
});
}
render() {
return (
<div className="dds-search-wrapper">
<input
name="searchTerm"
type="search"
value={this.state.searchTerm}
onChange={this.onSearchChange}
onFocus={this.onSearchFocus}
onBlur={this.onSearchBlur}
autoComplete="off"
/>
{this.props.yelpSearchResults &&
this.state.listOpen && (
<ul className="dds-list">
{this.renderSearchResults(
this.props.yelpSearchResults
)}
</ul>
)}
<input
name="location"
type="search"
value={this.state.location}
onChange={this.onLocationChange}
/>
</div>
);
}
解决方案
推荐阅读
- node.js - 点击硒元素
- apache - “www 到非 www”的 mod_rewrite 规则不会重定向子页面
- c++ - gRPC C++ 如何在 Windows 10 上构建?
- rest - 将 REST 请求与异步服务器中的响应匹配
- javascript - 列表中复选框上的 onclick 事件
- mysql - 如何找到 phpmyadmin SQL 密码加密类型?
- c# - 无法将数据从一个 GridView 复制到另一个 ASP.NET C#
- angular - Angular 2 Typescript 在登录/注销时重新加载组件
- javascript - 在 DOM 中堆叠多个画布或在一个画布中控制所有绘图更好吗?
- r - 当对不同的主成分组合进行回归时,回归系数不会改变