Javascript react js中的筛选器出错无法读取属性';指数';reactjs中未定义的
Iam使用过滤器过滤对象数组,我通过axios从api获取对象数组,并将其存储在redux状态。它可以很好地进行映射,但使用过滤器时会出现此错误,无法读取reactjs中未定义的属性“indexOf”Javascript react js中的筛选器出错无法读取属性';指数';reactjs中未定义的,javascript,reactjs,redux,filter,Javascript,Reactjs,Redux,Filter,Iam使用过滤器过滤对象数组,我通过axios从api获取对象数组,并将其存储在redux状态。它可以很好地进行映射,但使用过滤器时会出现此错误,无法读取reactjs中未定义的属性“indexOf” class ProductsList extends Component { constructor(props) { super(props) this.state = { search : ''
class ProductsList extends Component {
constructor(props) {
super(props)
this.state = {
search : ''
}
}
searchUpdate(event) {
this.setState({search: event.target.value.substr(0,20)})
}
async componentDidMount() {
const { fetchProducts } = this.props;
await fetchProducts();
}
async componentDidUpdate() {
const { fetchProducts } = this.props;
await fetchProducts();
}
render() {
//The problem with this filter method however if I don't use it it works will
let productsFiltered = this.props.products.filter((itemProduct)=>{
return itemProduct.nameEn.indexOf(this.state.search) !== -1
} )
const mapStateToProps = state => {
return {
products: state.categoryReducer.products
}
}
export default connect(mapStateToProps, actions)(ProductsList);
“itemProduct”是否具有“nameEn”属性?如果nameEn未定义,则可以在尝试执行indexOf之前进行检查<代码>返回itemProduct.nameEn&&itemProduct.nameEn.indexOf(this.state.search)!==-1Yes它是一个对象数组,由axios从服务器api获取它,它具有nameEn属性