【发布时间】:2019-11-07 17:20:11
【问题描述】:
我有一个 antd 面板作为折叠/手风琴元素的一部分,我正在尝试对文本的附加部分进行样式设置和渲染,作为标题的一部分。我通读了他们的文档,他们允许您通过使用 extra 属性添加额外的元素,但我似乎无法为其设置样式或添加条件渲染属性。我想要实现的是在手风琴关闭时将标题的右侧文本设置为“显示”,并在手风琴打开时将其更改为“隐藏”。我还想将文本设置为蓝色。我冒险尝试了不同的方法,包括顶部的以下功能,但没有任何效果。在当前的实现中,我遇到了几个错误。
预期的是赋值或函数调用,但看到的是表达式。
index.js:1446 警告:道具类型失败:提供给
CollapsePanel的道具extra无效,应为 ReactNode。index.js:1446 警告:函数作为 React 子级无效。如果您返回一个组件而不是从渲染中返回,则可能会发生这种情况。或者,也许您打算调用这个函数而不是返回它。
以下是我的组件:
import React from 'react'
import styled from 'styled-components'
import { Col, Row, Collapse } from 'antd'
import Checkbox from '../elements/Checkbox'
import icon from '../../assets/caretDown.svg'
import Button from '../elements/Button'
const { Panel } = Collapse
function showHide() {
return Collapse.isActive ? <p>SHOW</p> : <p>HIDE</p>
}
const ConfigurationOptions = () => (
<Container>
<Row>
<Col span={12}>
<StyledCollapse>
<Panel
header="DROPDOWN EXAMPLE"
key="1"
showArrow={false}
bordered={false}
extra={showHide}
>
<div>
<StyledH1>Placeholder</StyledH1>
</div>
</Panel>
</StyledCollapse>
</Col>
</Row>
</Container>
)
const StyledH1 = styled.h1`
font-weight: 700;
`
const StyledCollapse = styled(Collapse)`
&&& {
border: none;
border-radius: 0px;
background-color: #f7f7f7;
box-shadow: none;
}
`
export default ConfigurationOptions
【问题讨论】:
-
事先从语法错误中修复代码
-
不确定你的意思。我添加了我缺少的结束
</Container>标签。你说的是这个吗? -
添加了答案
标签: javascript reactjs antd