我有一个问题,我构建的 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 ...
以防将来其他人因收到类似警告而偶然发现此问题,即:-
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]);
希望这可以帮助将来的人指出正确的方向......