Javascript 如何从自动完成组件返回数据
我需要过滤数据,假设用户在A中键入,因此在{this.state.result}中,我想打印带有字母A的所有内容。我指的是对象的头部,在本例中,旅行和赌博包含A 这是我需要迭代的数据Javascript 如何从自动完成组件返回数据,javascript,Javascript,我需要过滤数据,假设用户在A中键入,因此在{this.state.result}中,我想打印带有字母A的所有内容。我指的是对象的头部,在本例中,旅行和赌博包含A 这是我需要迭代的数据 const falsyData = [{ 'Hello': { 'what I do' : 'you just say Hello', 'which language' : 'english' }, 'Travel': { 'Etymolog
const falsyData = [{
'Hello': {
'what I do' : 'you just say Hello',
'which language' : 'english'
},
'Travel': {
'Etymology' : 'The origin of the word "travel" is...',
'Purpose' : 'include recreation'
},
'Gambling': {
'Gamble' : 'Gambling is the wagering of money...',
'Origins' : 'Many popular games played in...'
}
}];
render () {
return (
<Grid>
<TextField
onChange={this._onChange.bind(this)}
onKeyUp={this._changeInput.bind(this)}
value={this.state.value} />
{!!this.state.value.length &&
<Row>
<Column>
//HERE I PRINT THE RESULTS OF THE SEARCH
<p>{this.state.result}</p>
</Column>
</Row>
}
</Grid>
);
}
_matchData = (input) => {
let reg = new RegExp(input.split('').join('\\w*').replace(/\W/, ""), 'i');
return falsyData.map(function(data) {
if (data.match(reg)) {
return data;
}
});
}
_changeInput = (val) => {
let autoCompleteResult = this._matchData(this.state.value);
if (autoCompleteResult.length) {
this.setState({result: autoCompleteResult.join(' ')});
};
}
_onChange = (event) => {
this.setState({value: event.target.value});
}
按照我这样做的方式,我在控制台中遇到了一个错误
未捕获类型错误:data.match不是函数
您缺少一些代码。person.match不是您提供的代码的一部分。@RichardGrant很抱歉,这是因为您的代码中没有定义数据。@RichardGrant查看代码,数据来自这里返回falsyData.mapfunctiondata。。。