以下版本几乎相同,那么为什么只有一个有效?

感激

请原谅。但是,为什么下面的工作...

{
  !submitted && !success && <button className="form-field" type="submit" title="Submit registration form">Register</button>
}
{
  submitted && success && <div className="success-message">Success! Thank you for registering</div>
}

而以下不是。代码几乎相同,唯一的区别是中间的两个花括号。所以为什么?

{
  !submitted && !success && <button className="form-field" type="submit" title="Submit registration form">Register</button>

  submitted && success && <div className="success-message">Success! Thank you for registering</div>
}

请注意

对于感兴趣的人,一种改进代码的方法是使用三元运算符。但是,要了解为什么上述方法不起作用,请查看以下答案。

{
  submitted && success ? 
    <div className="success-message">Success! Thank you for registering.</div> :
    <button className="form-field" type="submit" title="Submit registration form">Register</button>
}
这是Tasos

当您想在react的render方法中运行Javascript时,您需要通过使用{}JSX元素内部来告诉编译器它在哪里

使用条件渲染等效于编写此代码:

if (!submitted && !success) {
  return (
    <div>text</div>
  )
}

因此,第二个示例无法编译,因为它将是这样的:

if (!submitted && !success) {
  return (
    <div>text</div>
  )submitted && success && <div className="success-message">Success! Thank you for registering</div>
}

这显然是错误的。

在条件渲染代码中渲染JSX时,将使用括号将其包装,并退出运行Javascript的代码块。

您显示的第二个示例不起作用(是正确的),因为在第一个条件渲染之后,它希望读取JSX。

在此处查看条件渲染的工作方式

在这里查看更多

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

动态创建的范围表格,只有最后一个范围有效,为什么?

为什么只有第一个导入的模块有效而其余的不能运行

只有一个媒体查询有效,但我不知道为什么

wavfile.write:相同的数组,但只有一个有效

为什么这是一个有效的比较

两个应用几乎完全相同,只有一个在我的数据库中注册信息。为什么?

以下代码之间有什么区别,为什么一个有效而另一个无效?

两个几乎相同的片段但只有一个更新

为什么我的 karma-config.js 会触发多次 karma 启动,只有第一个有效?

为什么使用python在我的sqlite表中搜索一个项目,只有当数据是保存为文本的数字时才有效?

为什么一个查询有效,而另一个无效?

为什么一个 php 语句有效而另一个无效?

为什么一个 PHP 代码有效而另一个无效?

两个几乎相同的查询,一个有效,另一个无效,这是怎么回事?

当只有一个Java版本可用时,为什么会出现LinkageError?

为什么 x-- 是一个有效的 ruby 语句,但它什么也没做?

两个if语句,只有一个有效

尝试使用两个脚本,但只有其中一个有效

C-为什么只有第二个命令有效?

Qt:为什么只有qss文件中的一种样式有效

下面的React代码有什么区别?哪一个最有效?还是它们几乎一样?

curve()在第一个示例中有效,但在第二个示例中无效,但是它们看起来相同。为什么?

为什么只有一个按钮?

为什么只有一个警告循环?

为什么每个文件只有一个类

为什么此查询只有一个结果?

为什么只有最后一个输入是存储?

为什么一个受保护的Android:在活动的onClick方法真的有效么?

为什么有效载荷RecyclerView” onBindViewHolder是一个列表?