使用React语义UI进行条件渲染

时间:2019-04-12 15:15:55

标签: reactjs semantic-ui semantic-ui-react conditional-rendering

我正在尝试呈现React-Semantic UI消息,并根据条件,我需要根据条件显示内容或列表。

工作代码:

const Message = ({icon, header, content, className, list}) => {
if(Array.isArray(content))
{
    return (
    <SemanticMessage
        icon={icon}
        header={header}
        className={className}
        list={content}
    />
    )
} else {
    return (
    <SemanticMessage
        icon={icon}
        header={header}
        className={className}
        content={content}
    />
    )
}
}

但这不起作用:

const Message = ({icon, header, content, className, list}) => {
 return (
     <Message
         icon={icon}
         header={header}
         className={className}
         {...Array.isArray(content) ? [list={content}] : [content={content}]}
     />
 )

}

有什么线索吗?我在这里想念什么?

2 个答案:

答案 0 :(得分:0)

缺少内容属性。

return (
     <Message
        // this content prop missing in your code
         content={...Array.isArray(content) ? [list={content}] : [content={content}]}
     />
 )

答案 1 :(得分:0)

您需要稍作修改以使用键/值对扩展对象,而不是扩展数组。这些在JSX中称为传播属性

const Message = ({icon, header, content, className, list}) => {
 return (
     <Message
         icon={icon}
         header={header}
         className={className}
         {...Array.isArray(content) ? { list: content } : { content } }
     />
 )
}