我使用的是React 15.0.1和Material-UI 0.15.0。我试图通过React渲染自动完成。这是我的代码:
import React from 'react';
import SomeService from '../../../services/SomeService';
import AutoComplete from 'material-ui/AutoComplete';
class SearchInput extends React.Component {
constructor (props) {
super(props);
this.state = {
dataSource: []
};
}
searchSomething (value) {
if (value.length) {
SomeService.fetchAutocomplete({searchQuery: value})
.then((res) => this.handleSuccess(res.data),
(err) => this.handleFailure(err));
} else {
this.setState({
dataSource: []
});
}
};
handleSuccess (response) {
this.setState({dataSource: response.slice(0, 10)});
}
handleFailure (err) {
console.log(err);
}
render () {
return (
<div>
<AutoComplete
floatingLabelText='Enter test'
dataSource={this.state.dataSource}
onUpdateInput={(val) => this.searchSomething(val)}
fullWidth={true} />
</div>
);
}
}
export default SearchInput;
假设我得到一个包含数据的响应对象:[...] //一堆东西。 这没有呈现。
响应对象类似于:
reponse: {
....,
data: ['Apple', 'Banana', 'Orange'],
....
}
任何人都可以帮助我吗?
答案 0 :(得分:9)
根据this问题和提到的评论,你只需要通过为所有内容传递true来跳过过滤器功能。
<AutoComplete
floatingLabelText='Enter test'
dataSource={this.state.dataSource}
onUpdateInput={(val) => this.searchSomething(val)}
fullWidth={true}
filter={(searchText, key) => true} />