Javascript 如何强制多次加载的React本机应用程序进行正常日志记录?
我正在使用继承的代码库开发react应用程序 在这个组件文件中:index.jsx我有这个导入:Javascript 如何强制多次加载的React本机应用程序进行正常日志记录?,javascript,react-native,Javascript,React Native,我正在使用继承的代码库开发react应用程序 在这个组件文件中:index.jsx我有这个导入: import { CLicksAverage } from '../../Components/Averages'; 在index.jsx文件的下面,我有一位: } else if (attribute === 'Clicks') { chart = <ClicksAverage />; 目的 我正在记录事件。在这种情况下,单击“每周”、“每月”和“每年”选项卡。加载
import { CLicksAverage } from '../../Components/Averages';
在index.jsx文件的下面,我有一位:
} else if (attribute === 'Clicks') {
chart = <ClicksAverage />;
目的
我正在记录事件。在这种情况下,单击“每周”、“每月”和“每年”选项卡。加载页面时,默认值为“每周”
问题
react应用程序在初始加载时点击ClicksAverage三次。因此,它记录:
> Weekly
> Weekly
> Weekly
在初始加载之后,它的行为与正常情况一样,每次单击都会排列到所记录内容的唯一实例。例如:
> Yearly
> Weekly
> Monthly
> Yearly
> Yearly
> etc...
我尝试过的
我需要强制初始负载每周只记录一次(或者根本不记录)。然后允许用户按正常方式单击“每周”选项卡并记录该事件。我现在所拥有的感觉就像一个傻瓜——一定有更好的办法
对于单击“每周”选项卡时,我执行以下操作:
if (type === 'Weekly') {
trackWeeklyClicksTab();
} else {
在trackWeeklyClicks中,我有一个在静态类中初始化为零的局部变量loadCount。这是ClicksAverage三次加载的原因。但是我不喜欢它。无论负载计数是多少,代码都应该工作。在这个场景中,我还有一个问题,就是每周点击一次日志(它只记录一次)
trackweeklyckstab(){
如果(this.loadCount<3){
这个。每周循环运行();
此参数为0.loadCount+=1;
}否则{
console.log(“每周单击选项卡”);
}
}
每周一次{
console.log(“每周单击选项卡”);
this.weeklycksrunance=()=>{};
}
欢迎提出建议 你试过
useffect
hook吗?当值发生变化时,应记录类型
React.useEffect(() => {
console.log(type)
}, [type])
你试过
useffect
hook吗?当值发生变化时,应记录类型
React.useEffect(() => {
console.log(type)
}, [type])
太好了,谢谢。我是个新手,在文档中没有找到这个。非常有用,谢谢。@Peter hooks是一个相对较新的反应功能。你可以找到这些文件。我们已经在很大程度上转向使用带有类组件挂钩的函数组件。我强烈建议做一个关于钩子的教程。太好了,非常感谢。我是个新手,在文档中没有找到这个。非常有用,谢谢。@Peter hooks是一个相对较新的反应功能。你可以找到这些文件。我们已经在很大程度上转向使用带有类组件挂钩的函数组件。我强烈建议做一个关于钩子的教程。
React.useEffect(() => {
console.log(type)
}, [type])