Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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修复渲染的钩子,使钩子数量超过上一次渲染时的数量_Javascript_Reactjs_Typescript_React Hooks - Fatal编程技术网

Javascript 如何使用react hook修复渲染的钩子,使钩子数量超过上一次渲染时的数量

Javascript 如何使用react hook修复渲染的钩子,使钩子数量超过上一次渲染时的数量,javascript,reactjs,typescript,react-hooks,Javascript,Reactjs,Typescript,React Hooks,index.tsx 我在添加react-i18next时遇到了问题,这是使用的翻译。与上一次渲染相比,错误消息渲染的钩子更多。当添加翻译时。我该怎么处理呢 这是完整的代码吗?错误消息通常表示您正在有条件地调用react钩子。您发布的代码不包含导致该钩子的部分。@trixn是的,当我尝试删除UseTransation()这是react-i18next时,没有错误。但是我需要使用usetransationuseffect/useAnyHook需要在函数中。我不使用Next.js,但我有一种感觉,它必

index.tsx

我在添加
react-i18next
时遇到了问题,这是使用的翻译。与上一次渲染相比,错误消息渲染的钩子更多。当添加翻译时。我该怎么处理呢


这是完整的代码吗?错误消息通常表示您正在有条件地调用react钩子。您发布的代码不包含导致该钩子的部分。@trixn是的,当我尝试删除
UseTransation()
这是
react-i18next
时,没有错误。但是我需要使用usetransation
useffect
/
useAnyHook
需要在函数中。我不使用Next.js,但我有一种感觉,它必须自动将代码包装到一个函数中,该函数返回JSX,如果它没有导致返回错误的话,。因此,我建议将您得到的代码包装到另一个函数中,可以看到WARE
useEffect
等是按顺序运行的,以防next.js有某种挂载副作用。@trixn是的,正在试图弄清楚无效的js语法是如何工作的。OP现在添加了缺少的代码,因此现在更有意义了。
   import useUser from '@services/users';
    import React, { useState, useEffect } from 'react';
    import { useTranslation } from 'react-i18next';

function App() {
      const { t } = useTranslation();
    
      const { getAll } = useUser();
      const [ rowData, setRowData ] = useState([]);
    
     useEffect(() => {
        let ignore = false;
        (async function setAllData() {
          let response = await getAll({ length: 9999 });
        })()
        if (!ignore) {
            setRowData(response['data']['data']);
          }
        })()
        return () => {
          ignore = true;
        }
      }, [])
    
     return (
        <>
          <button>{t('create')}</button>
          {
            rowData.map((item, index) => (
              <div key={index}>
                {item.firstName}<br/>
              </div>
            ))
          }
        </>
      )
    }
    export default App;
export default function useUser() {
 const creds = useCredentials();

  Axios.defaults.baseURL = serverConfig[creds.server].api;
  
  return {

    getAll: (params?: object) => Axios.get(API_URL + (params ? getQueryParams(params) : ''))
    }

    }