为了账号安全,请及时绑定邮箱和手机立即绑定

无法读取 null 的属性“indexOf”,预计是反应生命周期问题

无法读取 null 的属性“indexOf”,预计是反应生命周期问题

收到一只叮咚 2021-08-26 16:38:36
我从发送 JSON 数据的本地 API 服务器获取了用户数据,并且在我添加搜索功能之前它就可以工作了。我认识到这些错误发生的问题来自React的生命周期风格,但是因为我对React研究的不多,所以我提出问题来与您解决这个问题。macOS Mojave、Express.js、React.js 和 React-Router 正在运行我的本地开发服务器。我以前从未尝试过此搜索功能。这些是我的代码:用户列表.js:import React, {Component} from 'react';import {List, Avatar, Button, Modal, Input} from 'antd';import UserItem from "../components/UserItem";import blue_check from '...';const {Search} = Input;class UsersList extends Component {    state = {        users: [],        modalVisible: false,        dataKey: 0,        keyword: '',    };    constructor(props) {        super(props);        this.state = {            users: [{                member_idx: 0,                nickname: 'loading...',            }]        };    }    componentDidMount() {        fetch('/api/getUsers')            .then(res => res.json())            .then(users => this.setState({users: users}));    }    showModal = (key) => {        this.setState({            modalVisible: true,            dataKey: key        });    };    handleClose = e => {        console.log(e);        this.setState({            modalVisible: false        });    };    handleSearch = (e) => {        this.setState({            keyword: e.target.value,        })    };    render() {        const {users, keyword} = this.state;        const filteredUsers = users.filter(            user => user.nickname.indexOf(keyword) !== -1        ); // This line makes error        return (            <div>                <Search                    placeholder="Input Search Text"                    enterButton="Search"                    onSearch={value => this.state.handleSearch(value)}                    size="large"                />UserItem.js 在这篇文章中不需要,因为它没有关于这个错误的问题。
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

nickname对于一个或多个用户,您的数据可能为空,因此您应该在过滤时也进行检查


     const filteredUsers = users.filter(

        user => user.nickname && user.nickname.indexOf(keyword) !== -1

    );


查看完整回答
反对 回复 2021-08-26
  • 1 回答
  • 0 关注
  • 357 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信