反应中的条件渲染

时间:2017-04-22 08:30:13

标签: javascript reactjs

在下面的代码中,当变量isActive为true时,我需要将#include <stdio.h> #include <string.h> int main() { char a[] = "hello"; char b[] = "hello"; if (strcmp(a,b) == 0) printf("strings are equal.\n"); else printf("strings are not equal.\n"); return 0; } html元素的文本设置为粗体,否则文本应该以纯文本呈现。

目前我收到以下错误:

  

对象无效作为React子对象(找到:带键的对象)   {标题})。如果您要渲染一组孩子,请使用   使用createFragment(object)来替换或包装对象   反应附加组件。检查<li>

的渲染方法

如何解决?

Navigation

1 个答案:

答案 0 :(得分:2)

title删除大括号:

const Navigation = ({ onClick, id, title, tooltip, isActive }) => (
    <li id={`${idSuffix}${id}`} onClick={onClick} alt={tooltip} data-active={isActive}>
        {isActive ? <b>{title}</b> : title }
    </li>
);

如果isActive === true,&lt; li&gt; element将包含一个JSX元素,其标题字符串包含在&lt; b&gt;中元素,否则它只包含标题字符串,这是好的。

当您在标题周围放置大括号时,实际上是在定义一个对象{ title: title },这是React渲染器无法接受的。

混淆来自JSX代码和纯JavaScript代码范围内花括号的不同含义。在JSX代码中,它们用于在元素中注入变量值。