reactjs - 在反应应用程序上工作并继续收到错误 Expected `onChange` listener to be a function,而不是得到 `object` 类型的值
问题描述
对我来说,它似乎正在传递一个函数,我完全不知道如何解决这个错误。我知道将此代码直接传递给 onChanged 是可行的,但由于某种原因,当 onSearchChange 方法作为参数传递给 Searchbox 时,它认为它是一个对象
这是有问题的代码
import "./tachyons";
import Searchbox from "./Searchbox";
import CardList from "./CardList";
import {robots} from "./robots";
class App extends React.Component {
constructor(){
super();
this.state = {
robots:robots,
searchfield:""
}
}
onSearchChange = (event)=>{
//console.log(event);
const filteredRobots = this.state.robots.filter(robots=>{
return robots.name.toLowerCase().includes(this.state.searchfield.toLowerCase());
});
console.log(filteredRobots);
}
render () {
return (
<div className='tc'>
<h1 className='f1'>RoboFriends</h1>
<Searchbox searchChange = {this.onSearchChange}/>
<CardList robots={this.state.robots}/>
</div>
);
}
}
export default App;
import App from "./App"
const Searchbox = (searchfield, searchChange)=>{
return (
<div className="pa2">
<input
className = "pa3 ba b--green bg-lightest-blue"
type="search"
placeholder="search robots"
onChange = {searchChange}
/>
</div>
);
}
export default Searchbox;
解决方案
您在Searchbox
组件中使用道具的方式错误。您需要像这样更新:
const Searchbox = ({searchfield, onSearchChange})=>{...}
推荐阅读
- javascript - 通过 id 和 jquery 引用附加的 HTML 代码
- c# - 在 .NET Core 3.1 中使用 EC (ECDH_ES_A256KW, A256GCM) 进行 JWE 加密/解密
- dialogflow-es - 从主对话框访问后续意图
- python - 在 Windows 10 上检测 USB 输入设备的插入/移除
- java - 什么时候不使用 java8 流?
- python - 在 x 轴上更改 Seaborn 线图中的刻度粒度
- ios - swift 4 中的 UITableView 和 UICollectionView 中的部分重复相同的数据
- linux - 并非每个命令都在 while 循环中
- python - 我们如何找到一个 n 位数字的排列?
- asp.net-core - 外部窗口 Asp.Net Core 中的 Google OAuth2