import React, {PureComponent} from 'react';
import {TextInput} from '../../shared';
import {array} from 'prop-types';
import { EmployeeTable } from '../employeeTable/EmployeeTable';
import './HeaderSearch.scss';
export class HeaderSearch extends PureComponent {
static propTypes = {
employees: array
}
constructor (props) {
super(props);
this.state = {
searchValue: null
};
}
_updateSearchValue (value) {
this.setState({
searchValue: value
});
}
render() {
const employees = this.props.employees;
let filteredEmployees = employees.filter(
(employee) => {
return employee.name.indexOf(this.state.searchValue) !== -1;
}
);
return (
<div className='header_search'>
<ul>
{filteredEmployees.map((employee) => {
return <EmployeeTable
employees={employee}
key={employee.id}
/>;
})}
</ul>
<TextInput
label='Search for people'
value={this.state.searchValue}
onChange={(e) => this._updateSearchValue(e.target.value)}
/>
</div>
);
}
}
export default HeaderSearch;
我是ReactJS的新手,所以我在這個問題上陷入困境。我意識到這個問題已被問及我通過他們所有,但仍無法找到解決方案,爲什麼我得到這個錯誤。我想根據searchValue
篩選數組employees
並顯示更新Employee Table
。未捕獲TypeError:無法讀取undefined屬性'filter'
就像所有其他問題一樣,這意味着您正在嘗試對未定義的變量使用某些東西。這意味着一個變量並不具有你認爲它的作用。確保'employees'實際上是一個數組(例如console.log) –