Javascript 如何从使用钩子的钩子更新组件中的状态,而不导致无限重渲染?
我有以下组成部分:Javascript 如何从使用钩子的钩子更新组件中的状态,而不导致无限重渲染?,javascript,reactjs,Javascript,Reactjs,我有以下组成部分: constcallscreen=()=>{ const[callEnded,setCallEnded]=useState(false); 常量UpdateTimeColor=()=>{ setCallEnded(真); }; 常数时钟=使用定时器( 呼叫开始时间, callLength, 呼叫超时, 时间日, 康涅狄格州, 更新颜色, ); 然后在useTimer中,我想在满足某些条件时调用updateimercolor。问题是当状态更新时,钩子会再次调用,因为调用upda
constcallscreen=()=>{
const[callEnded,setCallEnded]=useState(false);
常量UpdateTimeColor=()=>{
setCallEnded(真);
};
常数时钟=使用定时器(
呼叫开始时间,
callLength,
呼叫超时,
时间日,
康涅狄格州,
更新颜色,
);
然后在useTimer
中,我想在满足某些条件时调用updateimercolor
。问题是当状态更新时,钩子会再次调用,因为调用updateimercolor
的条件相同,所以组件会无限地重新渲染
如何从钩子更新CallScreen
中的状态而不创建无限循环
TIA。您还应该包括如何调用UpdateTimeColor,但在调用setCallEnded之前检查自上次调用以来callEnded是否更改了值可能会阻止无限循环
const updateTimerColor = () => {
//No need to set it again if the value did not change
if(!callEnded) {
setCallEnded(true);
}
};