问题
I am doing a comparison by converting my text to lowercase and comparing its index to -1, in order to have some value to the particular field in ReactJS
, but I am getting this error in JavaScript console:
Uncaught TypeError: props.filterText.toLowerCase is not a function
var props = this.props;
var rows = this.props.episodes
.filter(function(episode){
return episode.title.toLowerCase().indexOf(props.filterText.toLowerCase()) > -1;
})
.map(function(episode){
return <EpisodeRow key={episode.title} episode={episode}/>
});
回答1:
Looks like Chris's comment is the correct answer:
If title is a string, use toString() before toLowerCase():
return episode.title.toString().toLowerCase().indexOf(props.filterText.toString().toLowerCase()) > -1;
回答2:
I think Adam's answer from the comments is actually correct, and turned out to solve my problem :
.filter(function(episode){
if(episode.title) {
return episode.title.toLowerCase().indexOf(props.filterText.toLowerCase()) > -1;
} else {
return '';
}
})
来源:https://stackoverflow.com/questions/35248292/reactjs-tolowercase-is-not-a-function