Javascript 显示动态文本+;组件

Javascript 显示动态文本+;组件,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我的回报是有条件的。我需要显示一个带有导入组件的动态文本。如果我一个接一个地使用;没关系!但当把它们一起使用时,我会犯错误。我怎么了?我该怎么办 return ( ... <div className="ini-dialog-content"> { this.state.dialog_handShaking && (txt.credentialcheck.msg).replace('$$', this.state.clientnet.mac

我的回报是有条件的。我需要显示一个带有导入组件的动态文本。如果我一个接一个地使用;没关系!但当把它们一起使用时,我会犯错误。我怎么了?我该怎么办

return (
  ...
  <div className="ini-dialog-content">
   { this.state.dialog_handShaking && 
      (txt.credentialcheck.msg).replace('$$', this.state.clientnet.mac)
      <CircularProgress className={classes.progress} style={{ color: purple[500] }} thickness={1} />
   }
  ...
  </div>
)
返回(
...
{this.state.dialog_握手&&
(txt.credentialcheck.msg)。替换(“$$”,this.state.clientnet.mac)
}
...
)

您使用的不是三元运算符,而是逻辑AND运算符(但这两种运算符都适用)。运算符后面必须跟有表达式,在您的情况下,该表达式仅是带有
replace
语句的第一行。您需要使用元素将其包装:

{ this.state.dialog_handShaking && 
  <div>
    (txt.credentialcheck.msg).replace('$$', this.state.clientnet.mac)
    <CircularProgress className={classes.progress} style={{ color: purple[500] }} thickness={1} />
  </div>
}
{this.state.dialog_握手&&
(txt.credentialcheck.msg)。替换(“$$”,this.state.clientnet.mac)
}
或者更适合react的:

{this.state.dialog_握手&&
(txt.credentialcheck.msg)。替换(“$$”,this.state.clientnet.mac)
}

谢谢@madox2。但当我这样做时,我会收到一条警告:“不能作为的后代出现”@user3188348,然后用其他元素(例如
span
)或
Fragment
将其包装,但我也会收到同样的警告。
{ this.state.dialog_handShaking && 
  <React.Fragment>
    (txt.credentialcheck.msg).replace('$$', this.state.clientnet.mac)
    <CircularProgress className={classes.progress} style={{ color: purple[500] }} thickness={1} />
  </React.Fragment>
}