将数组值放在`usecallback deps`中

Posted

技术标签:

【中文标题】将数组值放在`usecallback deps`中【英文标题】:Put array values ​in `usecallback deps` 【发布时间】:2022-01-06 00:36:12 【问题描述】:

我已经创建了会员注册功能。

我想将formState.values的值从useCallback Hook传递给axios.post

但是,当我将formState.values 放入handleSubmit 函数中的useCallback 依赖项时,会出现',' expected. 类型错误。

我该怎么办?需要将values数组值放入formState作为axios argument

你不能把formState.values放在deps中,这样的axios参数值吗?

如何将值值作为参数传递?

const [formState, setFormState] = useState<formState>(
    isValid: false,
    values: ,
    touched: ,
    errors: ,
);


const handleSubmit = useCallback((event: FormEvent) => 
    event.preventDefault();
   
    axios.post<Login>(
        'http://www.minsususu.com/login',
        formState.values,
        
            withCredentials: true,
        ,
    )
    .then(response => 
        const  accessToken  = response.data; 
        axios.defaults.headers.common['Authorization'] = `Bearer $accessToken`;
        router.history.push('/');
    )
    .catch(error => 
        console.log(error);
    );

, [formState.values])

【问题讨论】:

',' expected. 不是类型错误。究竟是什么工具引发了这个错误,在哪里? formState.values确实是语法错误,但这与useCallback无关 values: formState.values 是对的。或您期望的任何变量。也可以是...formState.values 【参考方案1】:

会说问题出在电话后:

axios.post<Login>(
  'http://www.minsususu.com/login',
  formState.values, // or values: formState.values
   withCredentials: true ,
)

【讨论】:

以上是关于将数组值放在`usecallback deps`中的主要内容,如果未能解决你的问题,请参考以下文章

如何在自定义挂钩上使用 useCallback?

React - 无法在 usecallback 函数中调用道具值

我应该在 useCallback 的依赖数组中包含 setState 吗?

useMemo, useCallback, useEffect 三者区别

将多次访问的具有常量值的数组放在哪里?

React Hook useCallback 缺少依赖项:'Id'。包括它或删除依赖数组[重复]