Javascript Can';无法正确地从对象获取值。(TypeError:无法读取未定义的属性';筛选器')
我试图做一个搜索框,当用户输入搜索词并显示结果时,它会过滤一些数据(对象) 这是代码Javascript Can';无法正确地从对象获取值。(TypeError:无法读取未定义的属性';筛选器'),javascript,reactjs,object,filter,Javascript,Reactjs,Object,Filter,我试图做一个搜索框,当用户输入搜索词并显示结果时,它会过滤一些数据(对象) 这是代码 state = { names: customerData.name, searchTerm: '' }; editSearchTerm = (e) => { this.setState({searchTerm: e.target.value}) } dynamicSearch = () => { return this.state.
state = {
names: customerData.name,
searchTerm: ''
};
editSearchTerm = (e) => {
this.setState({searchTerm: e.target.value})
}
dynamicSearch = () => {
return this.state.names.filter(name =>
name.toLowerCase().includes(this.state.searchTerm.toLocaleLowerCase()))
}
这是数据
customerData = [
{
"index" = 0,
"age" = 20,
"name" = "A"
},
{
"index" = 1,
"age" = 30,
"name" = "B"
}
]
当我执行代码时,它返回一条错误消息“TypeError:无法读取未定义的属性'filter'
看起来像
names: customerData.name
不是获取数据值的正确方法。从中获取值的正确方法是什么?定义状态时,为名称指定一个空数组
state = {
names: [],
searchTerm: ''
};
并在获取自定义数据时更改名称
状态。不要忘记检查customData.names
是否为有效数组。请检查customData.names
是否返回数组
if (customData.names) {
this.setState({
names: customData.names
})
}
customerData.name
如何设置?基本上,在customerData.name
有数据之前,您不能访问这个.state.names
,或者在它有数据之前,您可以给它一个默认值(例如,names:[]
,然后当您获得customerData
时,customerData=…;this.setState({names:customerData.name});