Javascript JS/JSX函数始终返回true,即使它';这是假的

Javascript JS/JSX函数始终返回true,即使它';这是假的,javascript,reactjs,return,Javascript,Reactjs,Return,我在ReactJS中有一个函数,它检查string.trim()==”。如果修剪后的字符串均不等于“”,则函数应返回false,但它始终返回true 我从状态获取这些字符串 import React,{Component}来自'React'; 从'@fortawesome/react fontawesome'导入{FontAwesomeIcon}; 导入“./Contact.scss” 导出默认类Contact扩展组件{ 建造师(道具){ 超级(道具); 此.state={ 姓名:“, 电邮:

我在ReactJS中有一个函数,它检查
string.trim()==”
。如果修剪后的字符串均不等于“”,则函数应返回
false
,但它始终返回
true

我从
状态
获取这些字符串

import React,{Component}来自'React';
从'@fortawesome/react fontawesome'导入{FontAwesomeIcon};
导入“./Contact.scss”
导出默认类Contact扩展组件{
建造师(道具){
超级(道具);
此.state={
姓名:“,
电邮:“,
主题:“,
信息:“
}
}
setName=(e)=>{
this.setState({name:e.target.value});
};
setEmail=(e)=>{
this.setState({email:e.target.value});
};
setSubject=(e)=>{
this.setState({subject:e.target.value});
};
设置消息=(e)=>{
this.setState({message:e.target.value});
};
验证=()=>{
const{name,email,subject,message}=this.state;
返回名称。trim()==“”||
email.trim()||
subject.trim()||
message.trim();
};
render(){
const{name,email,subject,message}=this.state;
返回(
联系我
名称
电子邮件
主题
消息
发送
还有,别忘了和我联系!
)
}

}
您不是在调用函数,而是在使用它的引用。试着调用它。此外,您还在表达式块中使用字符串,如
{“true”}
。所以,它不是这样工作的。试着这样做:

disabled={!!this.validate() ? true : false}
但是,正如您自己所了解的,您可以在没有三元条件的情况下使用函数:

disabled={!!this.validate()}
因为它返回的是布尔值本身,而不是字符串。

disabled={!!this.validate()?“true”:“false”}
with
disabled={!!this.validate()}
确实解决了问题。

看起来正确。你能在问题中包括你的全部内容吗?可能还有其他问题。您在哪里看到它返回
true
?看起来还可以。我把你的示例代码变成了一个实时演示。它不会返回
true
。问题一定在别处。您需要提供。是否在验证功能中添加了控制台日志?如果不是,则检查值是否为预期值。那么它将是什么时候被访问的问题。我也可以在测试后确认它返回
false
,不过,我现在正在测试整个代码,它总是返回true:)让我们再挖掘一些。你是对的,编辑了它,但是当validate返回false时,disabled属性仍然保持为“true”。是的,它是这样工作的。当我看到你的答案时,我需要再次检查一下为什么会这样,并看到了问题所在。我在提供第一个答案时没有注意到这一点。我已经更新了我的问题,实际问题出在哪里。