Javascript 为什么会出现类型错误:无法读取属性';已完成';未定义的?

Javascript 为什么会出现类型错误:无法读取属性';已完成';未定义的?,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我为todo reactjs应用程序开发了一个减速机。这是减速器的一部分: case "SHOWCOMPLETE": //todo remove debugger; return state.map(todo => { if (todo.completed) { return todo }

我为todo reactjs应用程序开发了一个减速机。这是减速器的一部分:

 case "SHOWCOMPLETE":
            //todo remove
            debugger;
            return state.map(todo => {
                if (todo.completed) {
                    return todo
                }
                else
                {}
            })
这是为了显示具有已完成:true的TODO。但是,todos组件呈现此错误。这是组件的一部分:

if (this.props.todos) {
            //todo remove
            console.log('testing=this.props', this.props);
            display = this.props.todos.map
            (
                    (todo) => (

                        <p className={todo.completed ? 'strikethrough' : ''}
                           onClick={() => this.complete(todo.name)}> {todo.name}!</p>
                    )

            )
        }
if(this.props.todos){
//待办事项删除
log('testing=this.props',this.props);
display=this.props.todos.map
(
(待办事项)=>(

this.complete(todo.name)}>{todo.name}

) ) }

为什么会出现这个错误?这里有一个github链接:

您真正想做的是使用
过滤器
,而不是
映射
。当您使用
map
时,您会得到:

a=[1,2,3].map(n=>{if(n!==2)返回n})
log('a=',a)//结果=[1,未定义,3]