Javascript 是否可以为所有react组件自动导入JS文件?
我已经创建了一个日志实用程序功能,我计划在我的站点中99%的组件上使用它。我想知道是否可以访问此文件,而不必为每个组件编写“import{logger}from'utils/logging';”?有点像自动导入Javascript 是否可以为所有react组件自动导入JS文件?,javascript,reactjs,import,ecmascript-6,auto,Javascript,Reactjs,Import,Ecmascript 6,Auto,我已经创建了一个日志实用程序功能,我计划在我的站点中99%的组件上使用它。我想知道是否可以访问此文件,而不必为每个组件编写“import{logger}from'utils/logging';”?有点像自动导入 我正在使用create react应用程序。如果我正确理解您的需求,您希望类似使用console.log(不导入console),那么下面是您可以尝试的 在索引文件中,将其设置为全局对象(对于服务器端js)或窗口对象(对于客户端js)。因此,它可以在任何地方访问 我们有一个类似的mmid
我正在使用create react应用程序。如果我正确理解您的需求,您希望类似使用console.log(不导入console),那么下面是您可以尝试的 在索引文件中,将其设置为
全局
对象(对于服务器端js)或窗口
对象(对于客户端js)。因此,它可以在任何地方访问
我们有一个类似的mmidware(使用包):
希望这有帮助 你想做的事情听起来不是个好办法。我认为,如果您需要记录自定义数据,最好的解决方案是创建/添加中间件。或者在React的情况下,可能是一个包装器组件。我不确定 否则,请查看React/Redux开发工具扩展 编辑: 如果您想忽略良好做法,可以这样做:
// in index.js or app.js or wherever
import { logger } from 'utils/logging'
// if you have an env for development use it here
process.NODE_ENV = 'development' && window.logger = logger
// or just
window.logger = logger
// SomeComponent.js
window.logger()
你所说的自动导入是什么意思?@CRayen:与其为每个组件编写“import{logger}(从'utils/logging';”,不如让我在某个地方引用实用程序文件/函数一次,并让它在所有组件中都可以访问。请参阅我更新的答案。没有像自动导入这样的东西,但是有全局的。是的,我的日志是关于向控制台输出信息的。我只是想避开引用每个组件的实用程序文件/函数。这种做法不符合目的,因为我需要为每个组件导入“redux logger”。@Markie谢谢!我们通过将其导入Sagamiddleware实现了这一点(因此根saga是我们导入“redux logger”的唯一地方)@CRayen这很酷,但是你不需要在导出声明中引用它吗?@MarkieB在我们的例子中,Sagamiddleware
const Sagamiddleware=createSagaMiddleware()
处理了它。
// in index.js or app.js or wherever
import { logger } from 'utils/logging'
// if you have an env for development use it here
process.NODE_ENV = 'development' && window.logger = logger
// or just
window.logger = logger
// SomeComponent.js
window.logger()