小编Bud*_*Örs的帖子

使用 Cypress 测试从 React 控制列表中删除项目

我创建了一个 React 列表,用户可以通过单击按钮来删除项目。

删除的处理方式如下:

 const handleRemove = (index: number) => {
   onChange(fieldName, (prevState) => {
     return {
       ...prevState,
       [fieldName]: prevState[fieldName].filter((_: any, i: number) => i !== index),
     };
   });
 };
Run Code Online (Sandbox Code Playgroud)

当我手动测试它时,它工作正常,但是当我用 Cypress 测试它时,删除项目无法按预期工作,一些项目仍然存在。(我假设)问题在于 Cypress 同时按下每个“列表删除按钮”,当列表快速变化时,通过索引删除项目是不可信的。在现实生活中这不会造成任何问题,对吗?

如果可以的话,删除逻辑该如何重写?

如果这没什么大不了的,我怎样才能重写我的 Cypress 测试来等待几毫秒,同时 React 进行状态更新呢?

这是我经过几个小时的修补后得出的结论:

cy.get(".fa-solid.fa-minus").each((element, index) => {
      cy.wait(index * 3).then(() => {
        element.trigger("click");
      });
});
Run Code Online (Sandbox Code Playgroud)

testing typescript reactjs cypress cypress-each

5
推荐指数
1
解决办法
172
查看次数

如何使用 React 更改元素的 innerHTML?

当我单击按钮时,我想更改innerHTMLa div。我不知道为什么,但它没有收到错误,也没有得到预期的结果,而是将其删除到内容中并将其替换为"[object Object]".

我怎样才能让它工作?

import React from 'react';
import Login from './components/login.js';
import SignIn from './components/signin';

import './App.css';

function App() {
  function LoginOnClick(){
    document.getElementById("wrapper").innerHTML = <SignIn />;
  }
  return (
    <div className="container" id="wrapper">
      <button onClick={LoginOnClick}>Login</button>
      <Login />
    </div>
  );
}

export default App;
Run Code Online (Sandbox Code Playgroud)

html javascript reactjs

3
推荐指数
2
解决办法
1万
查看次数

css 文件中的 Javascript 颜色代码变量 (React JS)

我在 JS 文件中有颜色代码列表。

JavaScript:

export var ColorCodes = { 
    first:'#D09FD2',  
    second:'#A72500',  
    third:'#F67GHI',   
    fourth:'#8FERDD',  
} 
Run Code Online (Sandbox Code Playgroud)

我尝试在 CSS 文件中使用 js 变量,如下所示。

它会引发错误。

CSS:

import 'my.js'

.firstColor{

    font-size:15px;
    color:ColorCodes.first;
    }

.secColor{

    font-size:12px;
    color:ColorCodes.second;
    }
Run Code Online (Sandbox Code Playgroud)

HTML

<div class="firstColor">aaa</div>   
Run Code Online (Sandbox Code Playgroud)

javascript css reactjs

3
推荐指数
1
解决办法
605
查看次数

使用 JWT Passport 进行 NestJS 身份验证不起作用

我正在尝试使用 jwt-passport 和 nestjs 来设置一个非常简单的登录系统。我遵循了本教程:https : //docs.nestjs.com/techniques/authentication但我无法让它工作。我对这些东西真的很陌生,如果有人能给我指路,我将不胜感激。

我将登录名发送到服务器的方式:

    this.clientAuthService.login(this.userName, this.password).then(response => {
        this.clientAuthService.setToken(response.access_token);
        this.router.navigate(['/backend']);
    });
Run Code Online (Sandbox Code Playgroud)

我的 ClientAuthService:

export class ClientAuthService {

  constructor(private http: HttpClient, @Inject(PLATFORM_ID) private platformId) {
  }

  getToken(): string {
    if (isPlatformBrowser(this.platformId)) {
      return localStorage.getItem(TOKEN_NAME);
    } else {
      return '';
    }
  }

  setToken(token: string): void {
    if (isPlatformBrowser(this.platformId)) {
      localStorage.setItem(TOKEN_NAME, token);
    }
  }

  removeToken() {
    if (isPlatformBrowser(this.platformId)) {
      localStorage.removeItem(TOKEN_NAME);
    }
  }

  getTokenExpirationDate(token: string): Date {
    const decoded = jwt_decode(token);

    if (decoded.exp === undefined) {
      return null; …
Run Code Online (Sandbox Code Playgroud)

node.js jwt passport-local angular nestjs

3
推荐指数
1
解决办法
2979
查看次数

如何反应全局用户/用户数据?

我正在构建一个ReactJS项目,并且正在使用类似这样的东西,以通过应用程序提供用户数据:

function Comp1() {
  const [user, setUser] = useState({});

  firebase.auth().onAuthStateChanged(function (_user) {
    if (_user) {
      // User is signed in.
      // do some firestroe queryes to get all the user's data
      setUser(_user);
    } else {
      setUser({ exists: false });
    }
  });

  return (
    <div>
      <UserProvider.Provider value={{user, setUser}}>
        <Comp2 />
        <Comp3 />
      </UserProvider.Provider>

    </div>
  );
}

function Comp2(props) {
  const { user, setUser } = useContext(UserProvider);
  return (
    <div>
      {user.exists}
    </div>
  )
}

function Comp3(props) {
  const { user, setUser } …
Run Code Online (Sandbox Code Playgroud)

javascript firebase reactjs firebase-authentication react-hooks

2
推荐指数
1
解决办法
231
查看次数

为什么onClick呈现时会激活?

页面呈现后,onClick激活方式就会激活。为什么?我该如何解决?

import React from 'react';

function Input(props) {
  return (
    <div className={props.on}>
    <div className="input">
        <input placeholder="Ask for help... "/>
        <button onClick={props.setOn("no")}>Send</button>
    </div>
    </div>
  );
}

export default Input;
Run Code Online (Sandbox Code Playgroud)

javascript events reactjs

1
推荐指数
1
解决办法
70
查看次数

如何使可编码类解码没有键/名称的json数组?

我正在尝试将以下JSON解码为可编码对象。

[
        {
            "Action": "CREDIT",
            "Status": 1,
            "TransactionDate": "2019-09-20T04:23:19.530137Z",
            "Description": "test"
        },
        {
            "Action": "CREDIT",
            "Status": 1,
            "TransactionDate": "2019-09-20T04:23:19.530137Z",
            "Description": "test"
        },
        {
            "Action": "CREDIT",
            "Status": 1,
            "TransactionDate": "2019-09-20T04:23:19.530137Z",
            "Description": "test"
        }
]
Run Code Online (Sandbox Code Playgroud)

我的可编码类是..

struct UserWalletHistoryList: Codable {
    var historyList: [UserWalletHistory]
}


struct UserWalletHistory: Codable{
    var Action: String?
    var Status: Int?
    var TransactionDate: String?
    var Description: String?
}
Run Code Online (Sandbox Code Playgroud)

但这并不成功。我认为这是因为变量名historyList,因为没有像historyListJSON 这样的键。那...那应该是什么?

swift codable

1
推荐指数
1
解决办法
34
查看次数