老师有点看不懂你这代码执行逻辑,能详细解释一下么?

来源:4-8 【全局数据传递】组件化Context Provider

Rukia酱00

2021-07-27

我不太理解,你是怎么通过setState的修改状态的,按照我的理解你返回的不是一个对象?来重新修改defaultContextValue,然后第一个展开运算符实现向对象添加属性,第二个展开运算符实现像二维数组里添加新的对象么?不知道我理解对么?
第二个问题是,如果addtoCart这个函数绑定到onClick之后,React是如何识别到我点是那个id和name放进二维数组里面的?(就是它是怎么实现我点那个机器人就是要加载到购物车里那个机器人?)
图片描述

写回答

1回答

阿莱克斯刘

2021-07-30

1. “然后第一个展开运算符实现向对象添加属性,第二个展开运算符实现像二维数组里添加新的对象么?不知道我理解对么?”

是的,你的理解是对的。第一个展开运算符会根据state创建一个新的对象,并且把state中除了shoppingCart以外的所有数据都复制到这个新的对象中。第二个展开运算符不仅仅是添加对象,而且是创建一个新数组并且在这个数组的最后一项添加一个新对象{id, name}

2. 第二个问题

id和name通过addToCart的参数传递,请参考课程代码库的代码

//img.mukewang.com/szimg/610345ab09170fe315340646.jpg



0
1
Rukia酱00
谢谢老师我懂了
2021-07-30
共1条回复

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

1993 学习 · 1015 问题

查看课程