reactjs - 不变违规 : React. Children.only 期望收到单个 React 元素子元素

标签 reactjs react-bootstrap

我不断遇到不变违规,我真的不知道为什么......这肯定与 OverlayTriggers 有关。当把它们排除在外时,一切正常。

导入:

import Col from 'react-bootstrap/lib/Col';
import Row from 'react-bootstrap/lib/Row';
import Tooltip from 'react-bootstrap/lib/Tooltip';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger';

应该呈现一个带有键/值对的列表项,其中值有一个工具提示:

const renderCustomField = (field,customFields) => {
    const tooltip = (<Tooltip id="tooltip">{customFields[field]['sub']}</Tooltip>)
    return (
        <li>
            <OverlayTrigger placement="top" overlay={tooltip}>
                {field}
            </OverlayTrigger>
        </li>
    )
}

想要呈现customFields的类:

export default class EventHeaderCustomFields extends Component {
    render () {
        const customFieldsNames = Object.keys(this.props.customFields);

        return (
            <Col xs={12}>
                <h4><strong>Short overview:</strong></h4>
                <ul>
                {customFieldsNames.map(
                    (field) => renderCustomField(field,this.props.customFields)
                )}
                </ul>
            </Col>
        )
    }
}

EventHeaderCustomFields.propTypes = {
    eventData:PropTypes.object
};

最佳答案

OverlayTrigger 需要一个 React 元素子元素,将 {field} 包装在 span 或任何其他有效的 React jsx 元素中将解决此问题。

<li>
    <OverlayTrigger placement="top" overlay={tooltip}>
        <span>{field}</span>
    </OverlayTrigger>
</li>

关于reactjs - 不变违规 : React. Children.only 期望收到单个 React 元素子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45112294/

相关文章:

javascript - 无法读取未定义的属性 - javascript 类

javascript - 本地视频无法加载 - Webpack

javascript - 尝试将 react-bootstrap carousel 转换为 es6 和 redux

javascript - 带有输入的 React-Bootstrap 下拉列表不会保持打开状态

javascript - 使用react-native-svg-charts的多折线图

javascript - react 未捕获类型错误 : Cannot read property '__reactAutoBindMap' of undefined

javascript - 如何使用 react 引导 FormControl 下拉列表将值发送到状态?

css - 使用 React 创建网格布局

javascript - 谷歌地图呈现为灰色框

javascript - 如何使用 VS Code 调试在 Vagrant VM 内运行的 React 应用程序?