English 中文(简体)
• 攻击暴力: 带出的hoo比以往多
原标题:Uncaught Invariant Violation: Rendered more hooks than during the previous render

我有这样的部分(非常简化的版本):

const component = (props: PropTypes) => {

    const [allResultsVisible, setAllResultsVisible] = useState(false);

    const renderResults = () => {
        return (
            <section>
                <p onClick={ setAllResultsVisible(!allResultsVisible) }>
                    More results v
                </p>
                {
                    allResultsVisible &&
                        <section className="entity-block--hidden-results">
                            ...
                        </section>
                }
            </section>
        );
    };

    return <div>{ renderResults() }</div>;
}

当我上下页时,我发现这一错误:<条码>无暴力: 带上比以往更远的栅栏。 我试图对这一错误作出解释,但我的搜寻没有结果。

当我稍微修改部分时:

const component = (props: PropTypes) => {

    const [allResultsVisible, setAllResultsVisible] = useState(false);

    const handleToggle = () => {
        setAllResultsVisible(!allResultsVisible);
    }

    const renderResults = () => {
        return (
            <section>
                <p onClick={ handleToggle }>
                    More results v
                </p>
                {
                    allResultsVisible &&
                        <section className="entity-block--hidden-results">
                            ...
                        </section>
                }
            </section>
        );
    };

    return <div>{ renderResults() }</div>;
}

我不再犯这一错误。 是否是因为我列入了<条码>的国家功能,该功能由<条码>递交>。 解释固定装置为何奏效,是很有道理的。

最佳回答

固定装置之所以可行,是因为第一种代码样本(误差一)在<条码>上援引功能,而第一种(工作一)功能则通过<条码>。 差别在于所有进口的母体,在 Java文中,这意味着援引这一法典。

采用这种方式:在第一版代码样本中,每一次<代码>component,均援引renderResults。 每次都使用<条码>。 自2006年以来 自行处理,没有说明会发生多少次。

参考:

有了意大利统计局,你就担任活动手,而不是传说。

rel=“noreferer”> React Handling Activities Docs/a>

注:在把第一部法典样本放在沙箱中时,我无法得到这一准确的错误信息。 我的错误指的是无限的漏洞。 可否采用最近版本的React产生所述错误?

问题回答

我也面临同样的问题。 我正在做的是:

const Table = (listings) => {

    const {isLoading} = useSelector(state => state.tableReducer);

    if(isLoading){
        return <h1>Loading...</h1>
    }

    useEffect(() => {
       console.log("Run something")
    }, [])

    return (<table>{listings}</table>)
}

我认为,所发生的事情是,首先,该构成部分提前返回,而使用效果确实如此。 当处于脱离状态的国家发生变化时,使用效果会发生,我会发现错误,而这种错误比以前的错误多。

简单改动后确定:

const Table = (listings) => {
    
    const {isLoading} = useSelector(state => state.tableReducer);
        
    useEffect(() => {
        console.log("Run something")
    }, [])
    
    if(isLoading){
        return <h1>Loading...</h1>
    }
    return (<table>{listings}</table>)
}

页: 1 一、导 言 AllResultsVisible

<p onClick={() => setAllResultsVisible(!allResultsVisible) }> 
    More results v
</p>

它将完美地开展工作。

即便在以上各点之后,这一错误也有一些其他原因。 我在下面是一例使用案例。

function Comp(props){return <div>{props.val}</div>}

本构成部分可采用以下方式:

1. <Comp val={3} /> // works well
2. { Comp({val:3}) } // throws uncaught invariant violation error, at least it throw in my case, may be there were other factors, but changing back to first way removed that problem

问题可重新处理:

  1. Rendered lesser hooks than the previous render.
  2. Rendered more hooks than the previous render.

在这两种情况下,与你一样,都有一份有条件声明,要求履行相同职能,使父母双亲返回职务等不同地点返回:

const parentFunc = () => {
    if(case==1)
        return function_a();
    if (case==2)
        return function_b();
}

现有功能——a(a)可以是产生两种或一种 h(苯)或任何其他用途的职能

和职能_b(b)可以是造成不忽略的职能。

现在,当母公司返回职能——a(a)使一个人 h头和功能——b(b)不能 h起作用时,就会告诉你,从同一职能来看,有两个不同的因素被退回,一个有两点被ook,另一个有点被忽略。 傲慢

less子的提供较少。 错误是显而易见的。

如果案件被逆转,功能_b(b)首先归还条件,那么,反应将告诉你,由于同一原因,不同的功能被退回,错误将发生。

带出的hoo比以前多。

现在的解决办法:

• 改变法典的流通,如可能产生功能_ab(),确保使用所有hoo子,并在这一功能中:

const function_ab = () => {
    if(case==1)
         return (<div></div>) //or whatever
    if(case==2)
         return (<div>I am 2 </div>) //or whatever
}

造成这一错误的一个可能原因是使用

Component() // error
<Component /> // good

解释:

如果你直接称该构成部分的职能,它只是恢复联合X(无状态,无影响)的职能。 内部的 h不适当工作,可能被视为母体组成部分的 h。 如果您使用<代码><Component />,相当于执行React.create。 内容和内线将按预期运作。

在我的案件中,如果情况是这样,我就在我解决了错误之后,就用了定点。 根据对 h文件的反应,如果情况发生,我们就不应使用hoo。

http://www.ohchr.org。

import React, { useState, useCallback } from  react ;
import  ./style.css ;

export default function App() {
  const [count, setCount] = useState(0);
if(count < 10){
  return (
    <div>
      <h1>Hello Count!</h1>
        <button onClick={useCallback(setCount((count) => count + 1))}>
          click to add
        </button>
    </div>
  );
} else {
        return <div>Count reached 10!</div>
    }
 }

<>Solution:

import React, { useState, useCallback } from  react ;
import  ./style.css ;

export default function App() {
  const [count, setCount] = useState(0);
  const handleIncrement = useCallback(() => {
        setCount((count) => count + 1)
  })
  
if(count < 10){
return (
    <div>
      <h1>Hello Count!</h1>
      <button onClick={handleIncrement}>click to add</button>
    </div>
  );
} else {
        return <div>Count reached 10!</div>
    }
}
import React from  react 

const AddEmployee = () => {

 return (
 <>AddEmployee</>
 )
 }

export default AddEmployee



import { Link, useNavigate } from  react-router-dom ;
const ListEmployeeComponent = () => {
const navigator1 = useNavigate(); 
//below all the normal code like useEffect....
// and
 function addNewEmp() 
 {
  navigator1( /AddEmployee ) //defined a path in routes
 }


   return (
   <button onClick={addNewEmp}>Add Employee</button>
   JSX)

Note : if you add the const navigator1 = useNavigate(); below useEffect and all you will get an error Uncaught Error: Rendered more hooks than during the previous render. and your page will not render for me this worked please try this and let me know

我认为,这可以归类为ug,但很想让开发商思考这个问题。 基本上来说,当从0只hoo到积极数目的hoo骨过渡时,拉登上比以往更小的hoo子似乎不会被抛弃。

举例来说,当一个组成部分从1只 h到2只hoo时,错误确实被推倒。

处理稿:17.0.2

这个问题属于<条码>onClick,因为“代码”是指“所有结果/代码”,它将引发国家变革,并导致每一次改变。

onClick={ setAllResultsVisible(!allResultsVisible) }

改变这一职能需要的是:

onClick={_ => setAllResultsVisible(!allResultsVisible) }




相关问题
selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

How to fire event handlers on the link using javascript

I would like to click a link in my page using javascript. I would like to Fire event handlers on the link without navigating. How can this be done? This has to work both in firefox and Internet ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Clipboard access using Javascript - sans Flash?

Is there a reliable way to access the client machine s clipboard using Javascript? I continue to run into permissions issues when attempting to do this. How does Google Docs do this? Do they use ...

javascript debugging question

I have a large javascript which I didn t write but I need to use it and I m slowely going trough it trying to figure out what does it do and how, I m using alert to print out what it does but now I ...

Parsing date like twitter

I ve made a little forum and I want parse the date on newest posts like twitter, you know "posted 40 minutes ago ","posted 1 hour ago"... What s the best way ? Thanx.

热门标签