我使用Jest在结合Firebase Web SDK和FirebaseUI的Create React App上运行一些测试
每当我尝试使用--env = jsdom运行一些测试时,我都会遇到:
The current environment does not support the specified persistence type.与Auth有关
有任何已知的相关问题/解决方法吗?除了测试外,代码似乎可以正常工作/编译。
Google没有太大帮助
这是测试,非常基本。import "firebase/storage";由于这个原因不得不添加:在开玩笑的测试案例中,firebase.storage()不是函数
提前致谢
import React from "react";
import Enzyme from "enzyme";
import Adapter from "enzyme-adapter-react-16";
import "firebase/storage";
import {filterIngredientsToRemove} from "./shoppingList-reducer";
Enzyme.configure({adapter: new Adapter()});
describe("", () => {
let shoppingList;
let recipeId;
beforeEach(() => {
shoppingList = {
shoppingListItems: {
"1234": {ingredientId: 987, name: "patate", recipeId: 1234},
"2345": {ingredientId: 987, name: "patate", recipeId: 5432}
},
shoppingListRecipes: …Run Code Online (Sandbox Code Playgroud) 我无法理解下面的问题。
该问题与异步 setState 维度有关。通常我使用回调,但这里似乎不合适。
我的目标是创建一个状态(我将能够对其进行排序),该状态是通过迭代本身在地图中创建的不同状态来获得的。
下面的函数调用我的不同方法,我们感兴趣的是最后两个方法。getUserPoints和sortArrayforUserRank。
getPlayersByUser = () => {
database
.ref(`pools/${this.state.selectedValue}`)
.once("value")
.then(data => {
for (let item in data.val()) {
this.setState({
users: this.state.users.concat([item])
});
this.setState({ [item]: data.val()[item] });
}
})
.then(this.makePlayersArray)
.then(this.getUserPoints)
.then(this.sortArrayforUserRank);
getUserPoints = () => {
this.state.users.map(user => {
// Create the dynamic name of the state, 1 for each user
let userPoints = `${user}points`;
// initializing the state for userPoint to be at 0 for future calculation
this.setState({ [userPoints]: 0 …Run Code Online (Sandbox Code Playgroud)