请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

mount报错

图片描述

老师,我mount渲染报错,但换成shallow,render方法就可以。这个报错信息网上搜了没搜到相关问题。我检查依赖了,jsdom什么的都齐全。这个能是什么问题讷?

ToDoList代码

import React, { Component } from 'react';
import Head from './components/Head/index'
import List from './components/List/index'
class ToDoList extends Component {
    constructor(props){
        super(props)
        this.addItem = this.addItem.bind(this)
        this.changeStatus = this.changeStatus.bind(this)
        this.deleteItem = this.deleteItem.bind(this)
        this.inputBlurChange = this.inputBlurChange.bind(this)
        this.handleInputChange = this.handleInputChange.bind(this)
        this.state = {
            list: []
        }
    }

    addItem(value){
        let { list } = this.state
        list.unshift({ value, status: 'div' });
        this.setState({ list })
    }

    deleteItem(index){
        let { list } = { ...this.state };
        list.splice(index, 1)
        this.setState({list})
    }

    changeStatus(index){
        let { list } = this.state;
        if (list[index].status === 'div') {
            list[index].status = 'input'
        }
        this.setState({ list })
    }

    inputBlurChange(index){
        let { list } = { ...this.state };
        if (list[index].status === 'input') {
            list[index].status = 'div'
        }
        this.setState({ list })
    }

    handleInputChange(index, value){
        let { list } = { ...this.state }
        list[index].value = value
        this.setState({ list })
    }

    render(){
        const {list} = this.state;
        return (
            <div>
                <Head onAddItem={this.addItem} />
                <List 
                    list={list} 
                    onDeleteItem={this.deleteItem} 
                    onChangeStatus={this.changeStatus} 
                    onInputBlur={this.inputBlurChange}
                    onInputChange={this.handleInputChange}
                />
            </div>
        );
    }
    
}

export default ToDoList

正在回答 回答被采纳积分+3

2回答

慕仔1831298 2021-07-01 12:32:16

我也碰到这个问题了。react17版本不适配,退回react16版本就可以啦

0 回复 有任何疑惑可以回复我~
Dell 2021-02-18 23:58:43

看下你的todolist 里面的代码

0 回复 有任何疑惑可以回复我~
  • 上面是我ToDoList的代码,用shallow、render渲染都没问题。我之前也怀疑过是组件问题,我用mount渲染一个只有一行代码的函数组件也不行。
    回复 有任何疑惑可以回复我~ 2021-02-19 00:08:06
  • Dell 回复 提问者 反抗刀俎的小鲜肉 #2
    node_modules 删了重新安一次
    回复 有任何疑惑可以回复我~ 2021-02-20 01:40:16
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信