【发布时间】:2018-08-04 17:44:21
【问题描述】:
我一直在用头撞墙,试图让它发挥作用,有什么建议吗?我在这里使用流反应。我正在努力理解这个代码注释的东西,同时我也在学习。起初它是压倒性的,但在我花了一些时间在谷歌上搜索任何远程接近的东西后,我陷入了死胡同。帮忙?
//@flow
import React, { Component } from 'react';
import ShowCard from './ShowCard';
import Header from './Header';
type Props = {
shows: Array<Show>
};
type State = {
searchTerm: " "
};
class Search extends Component<Props, State> {
handleSearchTermChange = (Event: SyntheticKeyboardEvent<KeyboardEvent> & { currentTarget: HTMLInputElement }) => {
//this.setState({ searchTerm: event.currentTarget.value });
const newState = this.setState({ searchTerm: Event.currentTarget.value });
return newState;
};
render() {
return (
<div className="search">
<Header searchTerm={this.state.searchTerm} showSearch handleSearchTermChange={this.handleSearchTermChange} />
<div>
{this.props.shows
.filter(
show =>
`${show.title} ${show.description}`.toUpperCase().indexOf(this.state.searchTerm.toUpperCase()) >= 0
)
.map(show => <ShowCard key={show.imdbID} {...show} />)}
</div>
</div>
);
}
}
export default Search;
【问题讨论】:
-
首先我想知道为什么你可以使用
SyntheticKeyboardEvent,即使它没有被导入。其次,你能在做setState之前提供console.log(Event.currentTarget.value)的输出吗?也请澄清你的问题。你有错误吗?如果是这样:什么时候发生?您是否还可以提供相关来源(例如您的Header组件)? -
是的,请给我一些时间
-
Search.jsx?c103:27 Uncaught TypeError: Cannot read property 'searchTerm' of null
-
这是我在控制台中遇到的错误
-
SyntheticKeyboardEvent 是来自 flow 的类型注解
标签: javascript reactjs flowtype setstate