请稍等 ...
×

采纳答案成功!

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

老师这里不是很明白柯里化函数

updateModel 这里函数里,只传递了一个 value,是怎么知道要更新到 cardItem 上的呢?

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

1回答

蘇先生8067974 2025-12-20 09:56:05

过程:

1、const updater = updateItem('price', 100); 等价于

const updater = produce((draft) => { draft['price'] = 100; });

2、udpater是什么?

immer的produce支持两种模式:普通模式和柯里化模式,

普通模式

const nextState = produce(cardItem, (draft) => {
  draft.price = 100;
});

柯里化模式:

返回值:

(draft: T) => T  // 其中 T 是与传入状态结构兼容的对象类型

因此将 updater 传入到setCardItem中,setCardItem(updater) 等价于

setCardItem((cardItem) => { 
    // ...... immer 做了一些操作
    
    // 返回cardItem
    return cardItem;
});


1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
React 19 高薪技术 从入门到进阶
  • 参与学习       159    人
  • 解答问题       22    个

React是进入前端岗位必会技术,会React19竞争力更强,薪资更高

了解课程
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号