Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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
Reactjs 如何在React项目中添加服务人员_Reactjs_Service Worker_Progressive Web Apps - Fatal编程技术网

Reactjs 如何在React项目中添加服务人员

Reactjs 如何在React项目中添加服务人员,reactjs,service-worker,progressive-web-apps,Reactjs,Service Worker,Progressive Web Apps,我想在react项目中添加服务人员。 项目已准备就绪,默认服务似乎无法工作 即使在我尝试导入时,也会出现以下错误: 尝试导入错误:“./registerServiceWorker”不包含默认导出(作为“registerServiceWorker”导入) 此外,如何添加要缓存在默认版本serviceWorker文件中的文件 如果我添加自己的定制serviceWorker文件,就像无反应(框架)应用程序一样,它是否适用于反应情况 目前我在index.js中有这些代码 import React fro

我想在react项目中添加服务人员。 项目已准备就绪,默认服务似乎无法工作

即使在我尝试导入时,也会出现以下错误:

尝试导入错误:“./registerServiceWorker”不包含默认导出(作为“registerServiceWorker”导入)

此外,如何添加要缓存在默认版本serviceWorker文件中的文件

如果我添加自己的定制serviceWorker文件,就像无反应(框架)应用程序一样,它是否适用于反应情况

目前我在index.js中有这些代码

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import registerServiceWorker from './registerServiceWorker';


import { BrowserRouter } from 'react-router-dom'

ReactDOM.render(
    <BrowserRouter>
        <App />
    </BrowserRouter>,
document.getElementById('root'));

registerServiceWorker();

从错误信息来看,registerServiceWorker.js文件有问题

import registerServiceWorker from './registerServiceWorker';
但是,在registerServiceWorker.js文件中,没有以下内容

export registerServiceWorker
因此,我建议将以下内容添加到registerServiceWorker.js

export default registerServiceWorker

编辑: 使用此选项导入js文件

import * as registerServiceWorker from './registerServiceWorker';
然后像这样使用它:

registerServiceWorker.unregister();

编辑2: 我想你们对进出口有些误解,所以我在这里解释一下

如果我们想将某个文件(如child.js)导入另一个文件(如parent.js),在类似child.js的文件中,它必须具有导出功能

有一些方法可以做到这一点。 1.在Child.js中

const child = () => {

}
export default Child
我们可以在parent.js中导入它,如下所示。使用默认表达式,我们实际上可以在下面的Child位置使用任何名称(通常保持不变)


  • 您可能会看到另一种导入方法,如下所示:

    从“./registerServiceWorker”导入*作为registerServiceWorker

  • *表示registerServiceWorker.js中的所有内容。“as registerServiceWorker”为所有内容提供了一个名称,以便我们轻松导入它们


    导入文件的方法,因为在registerServiceWorker.js中有许多导出表达式,但没有导出默认值。

    从错误信息中可以看出,registerServiceWorker.js文件有问题

    import registerServiceWorker from './registerServiceWorker';
    
    但是,在registerServiceWorker.js文件中,没有以下内容

    export registerServiceWorker
    
    因此,我建议将以下内容添加到registerServiceWorker.js

    export default registerServiceWorker
    

    编辑: 使用此选项导入js文件

    import * as registerServiceWorker from './registerServiceWorker';
    
    然后像这样使用它:

    registerServiceWorker.unregister();
    

    编辑2: 我想你们对进出口有些误解,所以我在这里解释一下

    如果我们想将某个文件(如child.js)导入另一个文件(如parent.js),在类似child.js的文件中,它必须具有导出功能

    有一些方法可以做到这一点。 1.在Child.js中

    const child = () => {
    
    }
    export default Child
    
    我们可以在parent.js中导入它,如下所示。使用默认表达式,我们实际上可以在下面的Child位置使用任何名称(通常保持不变)


  • 您可能会看到另一种导入方法,如下所示:

    从“./registerServiceWorker”导入*作为registerServiceWorker

  • *表示registerServiceWorker.js中的所有内容。“as registerServiceWorker”为所有内容提供了一个名称,以便我们轻松导入它们


    导入文件的方法,因为在registerServiceWorker.js中有许多导出表达式,但没有导出默认值。

    您可以使用

    从“./registerServiceWorker”导入*作为registerServiceWorker

    之后,您可以从该文件调用任何方法到index.js文件,如-

    registerServiceWorker.unregister()


    您可以使用导入从registerServiceWorker.js文件导出的所有函数

    从“./registerServiceWorker”导入*作为registerServiceWorker

    之后,您可以从该文件调用任何方法到index.js文件,如-

    registerServiceWorker.unregister()

    试试这个

    create react app FolderName

    只是为你的应用程序自动创建一个注册服务工作者

    create react app FolderName


    只是为你的应用程序自动创建了一个
    registerServiceWorker

    亲爱的@Onkar即使如此,我也没有看到服务人员在Google ChromeDear@Onkar工作,即使如此,我也没有看到服务人员在Google ChromeCommenents工作,不需要进一步讨论;此对话已结束。评论不用于扩展讨论;这段对话已经结束了。这改变了吗?因为create-react应用程序不创建registerServiceWorker.js,而是创建serviceWorker.js,所以这是否已更改?因为createreact应用程序不创建registerServiceWorker.js,而是创建serviceWorker.js