Reactjs 在React中无无限循环同步两个状态

Reactjs 在React中无无限循环同步两个状态,reactjs,infinite-loop,use-effect,use-state,Reactjs,Infinite Loop,Use Effect,Use State,如何保持两个相关值的同步,如下面的代码所示,而不生成无限循环 如果使用value1=3的setter,我想更新value2='3' import React,{useState,useffect}来自“React”; const[value1,setValue1]=使用状态(1); const[value2,setValue2]=useState('1'); useffect(()=>{ setValue2(`${value1}`); },[value1]); useffect(()=>{ s

如何保持两个相关值的同步,如下面的代码所示,而不生成无限循环

如果使用value1=3的setter,我想更新value2='3'

import React,{useState,useffect}来自“React”;
const[value1,setValue1]=使用状态(1);
const[value2,setValue2]=useState('1');
useffect(()=>{
setValue2(`${value1}`);
},[value1]);
useffect(()=>{
setValue1(parseInt(value2));
},[value2]);
useffect(()=>{
设定值1(3);
}, []);

不要使用两个有状态值-而是只使用一个有状态值,并在需要时转换类型:

const [value1, setValue1] = useState(1);
const value2 = String(value1);
同样的技术也可以在React中的任何地方使用,其中一个变量的值可以完全由另一个变量的当前值确定——有一个状态变量,即真理的来源,并在需要时计算第二个变量

为了论证起见,另一种可行的方法是将两者合并为一个对象:

const [values, setValues] = useState({
  num: 1,
  str: '1'
});

然后要更新它们,请一次性调用
setValues
以串联更新它们-但在大多数情况下,第一种方法可能更容易。

不要使用两个有状态值-而是只使用一个有状态值,并在需要时转换类型:

const [value1, setValue1] = useState(1);
const value2 = String(value1);
同样的技术也可以在React中的任何地方使用,其中一个变量的值可以完全由另一个变量的当前值确定——有一个状态变量,即真理的来源,并在需要时计算第二个变量

为了论证起见,另一种可行的方法是将两者合并为一个对象:

const [values, setValues] = useState({
  num: 1,
  str: '1'
});

然后要更新它们,只需调用
setValues
一次,就可以同时更新它们,但在大多数情况下,第一种方法可能更简单。

这正是我所需要的。谢谢这正是我所需要的。谢谢