我创建了一个 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) 当我单击按钮时,我想更改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) 我在 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) 我正在尝试使用 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) 我正在构建一个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
页面呈现后,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) 我正在尝试将以下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 这样的键。那...那应该是什么?
reactjs ×5
javascript ×4
angular ×1
codable ×1
css ×1
cypress ×1
cypress-each ×1
events ×1
firebase ×1
html ×1
jwt ×1
nestjs ×1
node.js ×1
react-hooks ×1
swift ×1
testing ×1
typescript ×1