为什么会报错todolist.js:22 Uncaught TypeError: this.state.list.map is not a function

来源:2-9 实现 TodoList 新增删除功能(2)

weixin_慕村1291783

2021-03-10 21:04:50

import React, { ComponentFragment } from "react";


class TodoList extends Component {

  constructor(props) {

    super(props);

    this.state = {

      inputValue: "",

      list: [13123],

    };

  }

  render() {

    return (

      <Fragment>

        <div>

          <input

            value={this.state.inputValue}

            onChange={this.handleChange.bind(this)}

            // onFocus={this.handleFocus.bind(this)}

          ></input>

          <button onClick={this.handleBtn.bind(this)}>提交</button>

        </div>

        <ul>

          {this.state.list.map((itemindex=> {

            return <li key={index}>{item}</li>;

          })}

        </ul>

      </Fragment>

    );

  }


  handleChange(e) {

    this.setState({

      inputValue: e.target.value,

    });

  }

  handleBtn() {

    console.log(13);

    let newList = this.state.list;


    this.setState({

      list: newList.push(this.inputValue),

    });

  }

}


export default TodoList;



写回答

1回答

好帮手慕星星

2021-03-11

同学你好 ,push方法返回的是新数组的长度,而不是新数组,所以list变为数字使用map就会报错。

修改如下:提前将value放进数组中

http://img.mukewang.com/climg/6049844f09e288bf05730369.jpg

祝学习愉快!

0

0 学习 · 15276 问题

查看课程