Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以为所有react组件自动导入JS文件?_Javascript_Reactjs_Import_Ecmascript 6_Auto - Fatal编程技术网

Javascript 是否可以为所有react组件自动导入JS文件?

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

我已经创建了一个日志实用程序功能,我计划在我的站点中99%的组件上使用它。我想知道是否可以访问此文件,而不必为每个组件编写“import{logger}from'utils/logging';”?有点像自动导入


我正在使用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()