hooks使用中的问题总结

5 篇文章 0 订阅
2 篇文章 0 订阅

其实用hooks已经半年多了,遇到了很多问题,每次解决完就忘记了,也没有记录,刚刚又遇到一个问题,总觉得以前见过,但就想不起来当时如何解决的,突然醒悟,还是要记录一下,以便以后查看。如果能帮助更多人就更好了。

tips: 我是慢慢的写的,因为也没啥时间专门写这个,就遇到问题了先快速记一下,后面有时间了再慢慢补充原理吧。
一步一步慢慢来吧。

UseState

1. 更改数组时,页面不重新渲染
  • 问题描述:声明了一个数组simpleRules, 数据结构如下, 页面中渲染这个simpleRules中的数据展示在页面,当我更改simpleRules数据时,正常页面应该跟着变化的。代码操作如下。但是页面却没有变化,但是在handle方法中打印出来的,simpleRules数据是被更改了的。
	const [simpleRules, setSimpleRules] = useState([
		{
			ruleId: 1,
			conditions: [
				{
					text: '条件1',
					id: '1'
				}
			]
		}
	]);

	const handleChangeConditions = useCallback(() => {
		simpleRules[0].conditions.push({text: '条件2', id: '2'});
		setSimpleRules(simpleRules);
	}, [simpleRules]);

先说解决方案:直接暴力深拷呗

	setSimpleRules(_.cloneDeep(simpleRules));
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值