Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么会出现这样的错误:每次渲染后,来自内部的变量React Hook useEffect将丢失?_Javascript_Reactjs - Fatal编程技术网

Javascript 为什么会出现这样的错误:每次渲染后,来自内部的变量React Hook useEffect将丢失?

Javascript 为什么会出现这样的错误:每次渲染后,来自内部的变量React Hook useEffect将丢失?,javascript,reactjs,Javascript,Reactjs,我得到这个错误警告,在每次渲染后,从内部分配给“height”变量的效果将丢失。要随时间保留该值,请将其存储在useRef挂钩中,并将可变值保留在“.current”属性中。否则,您可以将此变量直接移动到useffect react hooks/deps中 这是我的密码 发生了什么事 const MyComponent = ({ height,})=>{ useEffect(() => { const getData = async () => {

我得到这个错误警告,在每次渲染后,从内部分配给“height”变量的效果将丢失。要随时间保留该值,请将其存储在useRef挂钩中,并将可变值保留在“.current”属性中。否则,您可以将此变量直接移动到useffect react hooks/deps中

这是我的密码

发生了什么事

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,我只想设置新值,然后calculateValue
const newValue=calculateValue(高度<10?10:高度,宽度)