javascript - 太多的重新渲染。React 限制渲染次数以防止无限循环
问题描述
当我尝试设置状态时出现错误。 错误:重新渲染过多。React 限制了渲染的数量以防止无限循环。
const Money= (props) => {
// some states and functions
.
.
/
const [loss, setLoss] = useState('');
const [gain, setGain] = useState('');
const diffrenceInCount = (todayCount as any) - (yestarDayCount as any);
// (todayCount(6) and yestarDayCount(24) are my some states which holds the respective values)
//diffrenceInCount = -18
if (diffrenceInCount < 0) {
const moneyLoss = diffrenceInCount.toString();
setLoss(moneyLoss );
}
if (diffrenceInCount > 0) {
const moneyGain = diffrenceInCount.toString();
setGain(moneyGain);
}
useEffect(() => {
userMoney();
allUserMoney();
}, [])
return (
<IonContent>
{* some code *}
</IonContent>
);
}
export default Money;
我已经尝试过useReducer
,我正在寻找设置状态的解决方案。
解决方案
useEffect(() => {
if (diffrenceInCount < 0) {
const moneyLoss = diffrenceInCount.toString();
setLoss(moneyLoss );
}
if (diffrenceInCount > 0) {
const moneyGain = diffrenceInCount.toString();
setGain(moneyGain);
}
}, [diffrenceInCount]);
你应该试试这个......它只在有变化时运行diffrenceInCount
推荐阅读
- javascript - jquery中不显示带有'+'符号的字符串
- mongodb - dokku mongodb 服务中使用的内存量是多少?
- css - 复制图像块悬停效果:随附示例
- flutter - 在颤动的 2Dimensions Flare 画板中选择元素
- html - vue.js no data rendering
- dart - 在 SnackBarAction onPressed 上颤振小吃吧
- python - sqlite3.OperationalError:没有这样的表:MainData
- amazon-web-services - ELB 跨可用区平衡 DNS 解析与粘性会话
- node.js - 为什么socket.io 让服务器的CPU 100%?Nuxt+koaJS
- c# - 无法从程序集中加载类型