删除失败

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

Liiiu

2021-03-09 17:29:16

为什么注释的这种方法删除不了?http://img.mukewang.com/climg/60473fd7095bad0e07700324.jpg

写回答

3回答

好帮手慕言

2021-03-10

同学你好,有没有发现一个共性问题呢?就是push数据,或者splice数据,只有在输入框中的值再发生改变时,才会添加或者删除某个值,这是因为在onchange事件处理函数中使用了setState方法,页面中的内容会重新渲染。

建议:为了避免一些不必要的问题,建议:哪个方法中改变了数据,就再调用一下setState方法。

祝学习愉快~

0

好帮手慕言

2021-03-10

同学你好,数据发生变化,页面对应的内容也变化,主要是利用this.setState方法来实现的,所以只有一句代码是不能实现效果的。

祝学习愉快~

0
hiiiu
hp>​http://img.mukewang.com/climg/60485fd70982f49210060484.jpg

那为什么可以直接push进去呢?

h021-03-10
共1条回复

好帮手慕言

2021-03-09

同学你好,按照同学的写法,如下:

http://img.mukewang.com/climg/60475bf4093871fe05170145.jpg

handleItemClick函数中没有变量list,所以会报错。同学这时就想说了,可以声明一个list,用来接收splice方法的返回值,如下:
http://img.mukewang.com/climg/60475c7a0973d4ce07100150.jpg

但是同学要记得splice方法的返回值是所删除的项目,如果按照上方写法,那么在页面中点击哪项,会只留下哪项,其他的都会被删除掉。

建议:可以参考老师的写法。

祝学习愉快~

0
hiiiu
hp>不不不,我的意思是没有第二句话,只有一句 this.state.list.splice(index, 1)
这样直接操作state变量里的list数组。

h021-03-10
共1条回复

0 学习 · 15276 问题

查看课程

相似问题