React Formik onSubmit 特定于运行构建的问题

问题描述 投票:0回答:1

我有一个问题,我构建的 React 应用程序无法在 Formik 的 onSubmit 函数中提交。

在 dev react-scripts start 中运行可以正常工作。

只有当我构建项目并尝试在本地提供构建服务时,它才会提交失败。

我没有收到这样的错误,但我得到:- Formik.tsx:834警告:从submitForm()捕获未处理的错误ReferenceError:_i9未定义

chrome 控制台中引用的代码行(在 onSubmit 内)是这里的第二行:-

for(let i = 1; i <= values.numberOfTokens; i++) {

                let tokenTypeValue = parseInt(values.tokenTypes[i-1]);

我不确定为什么它在开发中运行时没有任何警告/错误,但在针对构建的代码运行时却失败了。

有人遇到过这样的问题吗?

values.tokenTypes 在 Formik 的initialValues 中初始化,如下所示:-

let tokenTypeArray = [1];
    
return(

    <Formik 
        initialValues={{tokenTypes: tokenTypeArray ...
reactjs formik
1个回答
0
投票

以防将来其他人因收到类似警告而偶然发现此问题,即:-

Formik.tsx:834警告:从submitForm()捕获未处理的错误ReferenceError:xx未定义

我设法解决了这个问题,并通过在 for 声明之外使用 let i=1 声明来自行修复此问题。

不是 100% 确定为什么,但是通过使用 chrome 控制台并向抛出的异常行添加断点,我能够看到 i 变量在构建 formik js 中被视为未定义。

通过将声明放在外面,构建随后开始工作:-

let i = 1;
            for(i = 1; i <= values.numberOfTokens; i++) {
                
                let tokenTypeValue = parseInt(values.tokenTypes[i-1]);

希望这可以帮助将来的人指出正确的方向......

© www.soinside.com 2019 - 2024. All rights reserved.