【发布时间】:2017-08-06 14:19:08
【问题描述】:
我正在尝试使用 react-search 在 Reactjs 中创建一个搜索过滤器。我需要获取保存到 sessionStorage 的数据并通过它进行搜索。我的问题是我认为我没有正确映射数据或正确设置 id。当我在搜索框中输入时,我会抛出一个错误,指出 items.map 不是函数。我需要知道我应该在我的 getItemsAsync 函数中放入什么,以便我可以正确地从 sessionStorage 中获取数据并通过它进行映射。请在解决方案中发布代码示例。
class TestComponent extends Component {
constructor(props){
super(props);
this.state = {
repos: [],
}
}
HiItems(items) {
console.log(items);
console.log(sessionStorage.getItem('List'));
}
getItemsAsync(searchValue, cb) {
let items = sessionStorage.getItem('List');
items.map(
(i, data) => { return { id: i , value: data.List }})
this.setState({ repos: items });
cb(searchValue)
}
render () {
return (
<div>
<Search items={this.state.repos}
multiple={true}
getItemsAsync={this.getItemsAsync.bind(this)}
onItemsChanged={this.HiItems.bind(this)} />
<ul id="result"> {this.getItemsAsync} </ul>
</div>
)
}
}
export default TestComponent;
【问题讨论】:
-
如果在调试模式下查询 sessionStorage.getItem('List') 会发生什么?你有什么价值观吗?
-
sessionStorage 将数据存储为字符串。使用JSON 对数据进行字符串化和解析。
标签: javascript reactjs search session-storage map-function