为什么在小程序首页里(Home页面)调用router.push('/setting');没有触发useEffect的销毁函数呢?
useEffect(() => {
return () => {
console.log('页面卸载');//这里没有被执行
};
}, []);
关于小程序中route使用的疑惑
Re: 关于小程序中route使用的疑惑
是不是可以理解为route.push编译到小程序后,方法等同于ty.navigateTo?
Re: 关于小程序中route使用的疑惑
还有我在Home页面监听了一个dpvalue,在setting页面频繁的修改这个dpvalue, 在home的监听函数也会被频繁的调用,应该如何避免这种问题呢?
Home页面 :
const dpValue = useProps(props => (props as any).dpCode);
useEffect(() => {
console.log('=======触发====');
}, [dpValue]);
Setting页面:
action[dpCode].set(val);
Re: 关于小程序中route使用的疑惑
自问自答的总结一下吧...不知道理解的对不对...
1.ray编译到小程序后 route.push等同于ty.navigateTo,因为页面栈缓存了,所以不会走销毁函数
2.如果需要监听dpValue,并且在离开页面A后,修改dpValue并防止被A页面监听,可以把dpValue放入到useState中,通过onDpDataChange 去setState值
Re: 关于小程序中route使用的疑惑
在 Ray 中如果要监听页面的事件,建议使用 usePageEvent https://developer.tuya.com/cn/miniapp/d ... epageevent
Re: 关于小程序中route使用的疑惑
建议文档中应该给个tips,useProps和useEffect组合使用的时候,需要注意一下,有没有在其他页面修改这个dp值的情况