为什么会报错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, { Component, Fragment } from "react";
class TodoList extends Component {
constructor(props) {
super(props);
this.state = {
inputValue: "",
list: [13, 123],
};
}
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((item, index) => {
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放进数组中
祝学习愉快!
相似问题