您的代码中存在一些错误。首先,require.context 方法的第二个参数应该是一个布尔值,用于指示是否应该搜索子目录。在您的代码中,'./svg,false,/.svg$/' 是一个字符串,而不是一个布尔值。请将其更正为 './svg', false, /.svg$/

其次,importAll 函数的参数 r 应该是一个函数,而不是一个模块。您可以通过将 require.context 的调用放在函数内部来解决这个问题。请修改您的代码如下:

const importAll = () => {
  const svgs = {}
  const r = require.context('./svg', false, /.svg$/)
  r.keys().map((key) => {
    return (svgs[key] = r(key))
  })

  return Object.keys(svgs)
}
const iconList = importAll()
// 获歌图标icon-(*).svg名称列表,例如[shouye,xitong,zhed\ie,...]
export const getNameList = () => {
  const regex = //icon-( .*?).svg/
  return iconList.map((item) => item.match(regex)[1])
}

请注意,您在正则表达式中的空格可能会导致匹配失败。如果图标文件名中没有空格,则可以将正则表达式修改为 //icon-(.*?).svg/

React 中 `require.context` 报错 'NodeRequire' 上不存在属性 'context' 的解决方法

原文地址: https://www.cveoy.top/t/topic/qEVC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录