Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';无法正确地从对象获取值。(TypeError:无法读取未定义的属性';筛选器')_Javascript_Reactjs_Object_Filter - Fatal编程技术网

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});