当我在编写下面的ReactJs代码时,我第一次使用if(this.state.username==true)并没有得到我期望的结果。但当我使用它时,if(this.state.username)它按照我的需要工作了。if(x==true)因此,我可以明显看出和之间存在差异if(x)。我也知道有时,它们可能意味着相同并产生相同的结果。我的问题是,如果我的构造函数设置如下,为什么两个表达式的行为会有所不同。这里的真正含义是什么if(this.state.username)?谢谢你帮助我理解。
constructor(props){
super(props)
this.state = {username:""}
}
Run Code Online (Sandbox Code Playgroud)
两个代码如下:
constructor(props){
super(props)
this.state = {username:""}
}
Run Code Online (Sandbox Code Playgroud)
class MyForm extends React.Component {
constructor(props){
super(props)
this.state = {username:""}
}
changeName = (e) =>{
let target = e.target;
let name = target.name;
let value = target.value;
this.setState ({[name]: value});
}
render(){
let myHeader;
if(this.state.username==true){
myHeader = <h1>Hello {this.state.username}</h1>;
}else{
myHeader = "";
}
return (
<form>
{myHeader}
<h1>{this.state.username}</h1>
<p>Enter your name:</p>
<input
name='username'
type="text"
onChange …Run Code Online (Sandbox Code Playgroud)我正在 Cypress 中进行无头测试,并且必须运行
npm install --save-dev start-server-and-test这样服务器就可以启动并等待 url 响应,然后再运行测试。自从我运行该命令以来,我的代码一直抛出以下错误。而且我不知道这是否是巧合。
Error: src/app/article/markdown.pipe.ts:2:25 - error TS2307: Cannot find module 'marked' or its corresponding type declarations.
2 import * as marked from 'marked';
Run Code Online (Sandbox Code Playgroud)
这是我的markdown.pipe.ts文件:
import { Pipe, PipeTransform } from '@angular/core';
import * as marked from 'marked';
@Pipe({name: 'markdown'})
export class MarkdownPipe implements PipeTransform {
transform(content: string): string {
return marked(content, { sanitize: true });
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试删除node_modules然后package-lock.json运行 npm install 但这并没有解决问题。我在 stackoverflow 上搜索了类似的帖子,一些建议是运行
npm install -g …