Javascript 如果或条件不';行不通
我是javascript新手,我想根据state.value!=null或“”。它不会抛出错误,但会在那里冻结。请看下面我的代码。任何帮助都将不胜感激Javascript 如果或条件不';行不通,javascript,reactjs,if-statement,Javascript,Reactjs,If Statement,我是javascript新手,我想根据state.value!=null或“”。它不会抛出错误,但会在那里冻结。请看下面我的代码。任何帮助都将不胜感激 constructor(){ super(); this.state = { value:null, list:[] } } handleList = () => { //let list = this.state.list.slice(); if (this.sta
constructor(){
super();
this.state = {
value:null,
list:[]
}
}
handleList = () => {
//let list = this.state.list.slice();
if (this.state.value != null || this.state.value.length() > 0 ) {
let list = [...this.state.list];
list.push(<li>{this.state.value}</li>);
this.setState({list});
console.log(list.length,this.state.list.length);
}else{
console.log("Cant enter null");
}
}
render() {
return(
<div className = 'global'>
<button onClick={() => {this.handleList()}
}>Add-New</button>
<input
onChange = {
(e)=>{this.setState({value: e.target.value})}
}
type = 'text'
placeholder = 'Enter New Todo!'/>
<hr/>
<ul>
{
this.state.list.map((li) => {
return (li);
})
}
</ul>
</div>
);
}
constructor(){
超级();
此.state={
值:null,
名单:[]
}
}
handleList=()=>{
//让list=this.state.list.slice();
if(this.state.value!=null | | this.state.value.length()>0){
let list=[…this.state.list];
list.push({this.state.value} );
this.setState({list});
log(list.length,this.state.list.length);
}否则{
console.log(“不能输入null”);
}
}
render(){
返回(
{this.handleList()}
}>新增
{this.setState({value:e.target.value})}
}
类型='text'
占位符='输入新Todo!'/>
{
this.state.list.map((li)=>{
返回(li);
})
}
);
}
}评估字符串的存在性
在JavaScript中:空的字符串'
是假的(计算为假的)
const x=''
if(x)console.log('x=true')
else console.log('x=false')
因为您使用的是OR,所以这两个条件都被选中。因此,即使值为NULL,代码仍在尝试检查字符串的长度。但是NULL对象没有“length”属性,因此这将导致“value没有属性:length”错误。要解决这个问题,使用AND(&&)更合适
此外,“length”属性是一个值,而不是一个函数,因此尝试作为函数调用将导致“length是值的函数”错误
查看网页时,这些错误应出现在控制台中。如果按F12键,浏览器底部会出现一个窗口。如果选择console选项卡,则应该能够看到所有错误输出。您可能需要确保没有筛选错误消息。Length是一个属性,而不是一个函数:this.state.value.Length()
=>this.state.value.Length
我知道您已经在那里找到了标记,但在您的问题中值得注意的是它与React有关。否则,代码就没有意义了。空值的内容将没有长度属性,因此代码也会在那里出错,您正在查找AND(&&
)。此外,在或之间的条件周围添加括号