Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript do表达式:不带else的if语句_Javascript_Reactjs_Jsx_Ecmascript Next - Fatal编程技术网

JavaScript do表达式:不带else的if语句

JavaScript do表达式:不带else的if语句,javascript,reactjs,jsx,ecmascript-next,Javascript,Reactjs,Jsx,Ecmascript Next,我对提议的方案有一个问题。有许多示例显示了如何使用它从同时具有if和else的条件语句返回值。对于if和else if和else也有效 如果一个条件语句只有一个if子句,但没有else if或else?这是do表达式的有效用法吗 我的用例是有条件地显示React组件中的内容。我希望这样编写JSX代码,但我不确定它是否有效: export default function myComponent(props) { return ( <div> {do {

我对提议的方案有一个问题。有许多示例显示了如何使用它从同时具有
if
else
的条件语句返回值。对于
if
else if
else
也有效

如果一个条件语句只有一个
if
子句,但没有
else if
else
?这是
do
表达式的有效用法吗

我的用例是有条件地显示React组件中的内容。我希望这样编写JSX代码,但我不确定它是否有效:

export default function myComponent(props) {
  return (
    <div>
      {do {
        if (true) {
          <p>If statement is true</p>
        }
      }}
      <p>I am always rendered</p>
    </div>
  );
}
导出默认函数myComponent(道具){
返回(
{do{
如果(真){
如果这句话是真的

} }} 我总是被渲染

); }

我在中也问了这个问题。

为什么不干脆这样做呢?使用三元运算符

export default function myComponent(props) {
  return (
    <div>
      { true ? <p>If statement is true</p> : null }
      <p>I am always rendered</p>
    </div>
  );
}
导出默认函数myComponent(道具){
返回(
{true?如果语句为true

:null} 我总是被渲染

); }
不确定
是否执行
,也如@

do表达是第1阶段提案,不是ES2016(ES7)的一部分


您可以使用这样编写,如果条件失败,则
返回null

export default function myComponent(props) {
    return (
        <div>
            {
                true?
                    <p>If statement is true</p>
                :null
            }
            <p>I am always rendered</p>
        </div>
    );
}
导出默认函数myComponent(道具){
返回(
{
是吗?
如果这句话是真的

:null } 我总是被渲染

); }
或使用

export default function myComponent(props) {
    return (
        <div>
            {
                true && <p>If statement is true</p>
            }
            <p>I am always rendered</p>
        </div>
    );
}
导出默认函数myComponent(道具){
返回(
{
如果语句为true&&

} 我总是被渲染

); }

查看文档以了解有关巴贝尔的更多详细信息:

输入:

<p>
  {do {
    if (true) {
      <a/>
    }
  }}
</p>

这对我来说很有意义。隐含的
else
表达式中的返回值将是
未定义的

do
表达式是第1阶段提案,而不是ES2016(ES7)的一部分。
React.createElement(
  "p",
  null,
  true ? React.createElement("a", null) : void 0
);