要在Internet Explorer 11中使用Formik和Next.js,你需要确保几个关键点得到满足:
Internet Explorer 11不支持现代JavaScript特性,如Promise、async/await等,这可能导致Formik和Next.js无法正常工作。
// 在项目入口文件(如`_app.js`)中引入polyfills
import 'core-js/stable';
import 'regenerator-runtime/runtime';
// 在项目根目录下的`babel.config.json`中添加以下配置
{
"presets": ["next/babel"]
}
// 在`next.config.js`中添加以下配置
module.exports = {
webpack: (config, { isServer }) => {
if (!isServer) {
config.resolve.fallback = {
"crypto": require.resolve("crypto-browserify"),
"stream": require.resolve("stream-browserify"),
"url": require.resolve("url/")
};
}
return config;
}
};
import { Formik, Form, Field } from 'formik';
const MyForm = () => (
<Formik
initialValues={{ email: '', password: '' }}
onSubmit={(values) => {
alert(JSON.stringify(values, null, 2));
}}
>
{({ isSubmitting }) => (
<Form>
<Field type="email" name="email" />
<Field type="password" name="password" />
<button type="submit" disabled={isSubmitting}>
Submit
</button>
</Form>
)}
</Formik>
);
export default MyForm;
通过以上步骤,你应该能够在Internet Explorer 11中使用Formik和Next.js。
领取专属 10元无门槛券
手把手带您无忧上云