javascript - React Selector:通过两个组件传回 onChange 事件
问题描述
我正在尝试通过两个组件将来自 React 选择器的 onChange 事件传递回父应用程序。使用下面的内容,e.target.value 是未定义的,因此事件似乎没有回来。什么是不正确的?
父应用程序,通过一直向下传递 selectCity,我假设事件 e 应该回到它。
selectCity = e => {
console.log('filter city' + e.target.value)
this.setState({
filteredBuildings: this.state.filteredBuildings.filter((b) =>
b.filterOptions.city === e.target.value)
})
}
<FilterSection
cityFilterOptions={this.getCityFilterOptions()}
selectCity={this.selectCity}
/>
中间组件,FilterSection,只需传递selectCity:
const FilterSection = props =>
<div className="filter-section">
<Filter
cityFilterOptions={props.cityFilterOptions}
selectCity={props.selectCity}
/>
</div>
子组件,试图将selectCity函数设置为 onChange 事件。
return (
<div className="filter-row">
<div className="filter">
<Select
onChange={this.props.selectCity}
className="basic-single"
classNamePrefix="select"
isClearable={true}
isSearchable={true}
name="color"
options={this.props.cityFilterOptions}
placeholder="All Cities"
/>
</div>
</div>
);
解决方案
尝试像这样将事件作为参数传递给 this.props.selectCity:onChange={(e)=>this.props.selectCity(e)}
还要检查您的 this.props.cityFilterOptions 可能没有返回正确的结果。
推荐阅读
- javascript - ReactJS - 使用 redux-saga 发送一个空对象
- selenium - 无法从网络日志中获取 HTTP 响应正文 - Selenium
- r - 将两个矩阵相乘时出现不一致的数组错误 (*%*)
- python - 通知不断发布到松弛频道
- node.js - 将 cookie 文件传入 curl 请求 nodejs
- sql - 根据最小和最大日期时间附加名称
- c# - 在 .net 核心中获取访问令牌
- java - JavaFX FileChooser 行为在组合扩展上不一致
- javascript - 将按钮的文本从“复制”转换为“已复制”,然后在几秒钟后返回“复制”
- java - 即使有 NullPointerError 如何让 if 语句完成