Javascript 为什么会出现这样的错误:每次渲染后,来自内部的变量React Hook useEffect将丢失?
我得到这个错误警告,在每次渲染后,从内部分配给“height”变量的效果将丢失。要随时间保留该值,请将其存储在useRef挂钩中,并将可变值保留在“.current”属性中。否则,您可以将此变量直接移动到useffect react hooks/deps中 这是我的密码 发生了什么事Javascript 为什么会出现这样的错误:每次渲染后,来自内部的变量React Hook useEffect将丢失?,javascript,reactjs,Javascript,Reactjs,我得到这个错误警告,在每次渲染后,从内部分配给“height”变量的效果将丢失。要随时间保留该值,请将其存储在useRef挂钩中,并将可变值保留在“.current”属性中。否则,您可以将此变量直接移动到useffect react hooks/deps中 这是我的密码 发生了什么事 const MyComponent = ({ height,})=>{ useEffect(() => { const getData = async () => {
const MyComponent = ({
height,})=>{
useEffect(() => {
const getData = async () => {
try {
if (height < 10) {
height = 10
}
const newValue = calculateValue(height, width)
}
if(isNotValidate){
getData()
}
}
const MyComponent=({
高度,})=>{
useffect(()=>{
const getData=async()=>{
试一试{
如果(高度<10){
高度=10
}
const newValue=calculateValue(高度、宽度)
}
如果(isNotValidate){
getData()
}
}
由于错误,我使用的是useEffect,但React、state和props中显示后的错误将被视为不可变。当设置
height=10
时,这会使props对象发生变化。错误是,每个渲染都会将height
prop重置为传递的值
如果当前值小于10,我只想设置新值,然后
然后计算价值
您可以使用高度的最大值
或值10
const newValue = calculateValue(Math.max(height, 10), width)
height
似乎是一个解构的道具值。道具将被视为不可变的。错误是,每个渲染都会将height
道具重置为传递的值。您试图用这个height
值做什么?@DrewReese我如何解决?除了尝试错误提示的内容之外,我还想我想你的问题的答案是围绕着你想做什么/使用高度来做什么。@drewrese如果当前值小于10,我只想设置新值,然后calculateValueconst newValue=calculateValue(高度<10?10:高度,宽度)