Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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 TypeError:\u firebase2.default.storage不是函数(Jest测试失败)_Reactjs_Firebase Storage_Jestjs - Fatal编程技术网

Reactjs TypeError:\u firebase2.default.storage不是函数(Jest测试失败)

Reactjs TypeError:\u firebase2.default.storage不是函数(Jest测试失败),reactjs,firebase-storage,jestjs,Reactjs,Firebase Storage,Jestjs,我有一个简单的浅层测试 import React from 'react'; import { shallow } from 'enzyme'; import Layout from '../containers/' it('renders without crashing', () => { shallow(<Layout />); }); 从“React”导入React; 从“酶”导入{shall}; 从“../containers/”导入布局 它('渲染而不崩溃'

我有一个简单的浅层测试

import React from 'react';
import { shallow } from 'enzyme';
import Layout from '../containers/'

it('renders without crashing', () => {
  shallow(<Layout />);
});
从“React”导入React;
从“酶”导入{shall};
从“../containers/”导入布局
它('渲染而不崩溃',()=>{
浅();
});
firebase.storage()
功能添加到我的应用程序后(不是直接在Layout.jsx中,而是在Layout的子级中)-我现在无法通过这个简单的测试。我的印象是这里的浅层渲染是。。。嗯,很浅。。。没有

应该注意的是,我所有的firebase组件都工作得很好,除了这个失败的测试之外,我没有任何错误


我已经尝试引入
导入'firebase/storage'
,但这不起作用。想法?

我将
package.json
中的测试脚本改写为
react scripts test--env=jsdom--browser
,它成功了。

你能提供更多关于布局组件和使用
firebase.storeage()的组件实现的信息吗?使用
shallow
确实只渲染没有子级的布局组件,但这并不意味着不会导入其他组件,因此如果您在顶层使用该函数,它将解释它失败的原因。另一个选项,尝试使用此选项禁用生命周期方法:确定。我的布局组件由我的路由器和来自react router dom的路由组件组成。这就是那里发生的一切。使用firebase.storage的组件位于布局中呈现的
中。我现在将在这里查看该链接。我在布局组件中没有使用任何生命周期方法。不过,这是一个很好的选择!正如我所说,我的布局组件实际上只是渲染路由组件,没有其他内容。带有
firebase.storage()
的语句是在组件方法内部还是在实际组件外部,但在该文件中?该文件可能是由
Layout.jsx
组件导入的,因此顶级的所有代码都将被执行。但是,组件内部的代码不应执行,因为
浅(…)
不会呈现组件。啊。。。好主意。让我看看,亲爱的!谢谢你的意见!我会重新开始这个项目,如果你的答案有效的话,我会接受的!干杯