首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在尝试导入TypeError时修复“rule.assign :rule.assign不是函数”

如何在尝试导入TypeError时修复“rule.assign :rule.assign不是函数”
EN

Stack Overflow用户
提问于 2021-12-14 20:18:54
回答 1查看 493关注 0票数 0

我可以毫无问题地import { ToastContainer } from 'react-toastify,但是当我尝试import 'react-toastify/dist/ReactToastify.css';时,我会得到一个错误:

代码语言:javascript
复制
./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[7].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[7].use[2]!./node_modules/react-toastify/dist/ReactToastify.css

TypeError: rule.assign不是一个函数

我使用next.js和顺风css,启用了jit模式。

_app.js:

代码语言:javascript
复制
import 'tailwindcss/tailwind.css';
import '../public/css/syles.css';
import NavBar from '../components/NavBar';
// dynamic(
//   () =>
//     import('!style-loader!css-loader!react-toastify/dist/ReactToastify.css'),
//   { ssr: false }             <== tried this as a potential fix, but didn't work.
// );
// import dynamic from 'next/dynamic';

import { ToastContainer } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';

function MyApp({ Component, pageProps }) {
  return (
    <>
      <ToastContainer position='top-center' />
      <NavBar />
      <Component {...pageProps} />;
    </>
  );
}

export default MyApp;

package.json:

代码语言:javascript
复制
{
  "name": "client",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "node server.js",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@headlessui/react": "^1.4.2",
    "@heroicons/react": "^1.0.5",
    "@tailwindcss/line-clamp": "^0.2.2",
    "axios": "^0.24.0",
    "bootstrap": "^5.1.3",
    "express": "^4.17.1",
    "heroicons": "^1.0.5",
    "http-proxy-middleware": "^2.0.1",
    "next": "^12.0.7",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-toastify": "^8.1.0"
  },
  "devDependencies": {
    "autoprefixer": "^10.4.0",
    "postcss": "^8.4.3",
    "postcss-preset-env": "^7.0.1",
    "tailwindcss": "^2.2.19"
  }
}

如有任何建议,将不胜感激。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-12-15 15:49:51

好的,所以我用{ injectStyle }来解决这个问题,并在useEffect()中执行。

我参考了这个页面:https://fkhadra.github.io/react-toastify/how-to-style/#inject-style-on-demand

_app.js:

代码语言:javascript
复制
import 'tailwindcss/tailwind.css';
import '../public/css/syles.css';
import NavBar from '../components/NavBar';
import { useEffect } from 'react';

import { ToastContainer } from 'react-toastify';
import { injectStyle } from 'react-toastify/dist/inject-style';

function MyApp({ Component, pageProps }) {
  useEffect(() => {
    injectStyle();
  }, []);
  return (
    <>
      <ToastContainer position='top-center' />
      <NavBar />
      <Component {...pageProps} />;
    </>
  );
}

export default MyApp;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70355067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档