【发布时间】:2016-04-14 21:06:50
【问题描述】:
我有以下组件:
const Chip = (props) => {
const ChipIcon = props.icon;
let deleteButton = null;
if (!props.readOnly) {
deleteButton = <Delete
style={styles.deleteButton}
onTouchTap={props.onRemove}
/>
}
return <div className="Chip" style={styles.tag}>
<ChipIcon />
{' ' + props.label + ' '}
{deleteButton}
</div>
};
props.icon 绝对是 Material UI SvgIcon,但我在尝试此操作时会收到警告。
arning:React.createElement:类型不应为 null、未定义、布尔值或数字。它应该是一个字符串(对于 DOM 元素)或一个 ReactClass(对于复合组件)。检查
Chip的渲染方法。
但这似乎有效:
const Chip = (props) => {
const chipIcon = props.icon;
let deleteButton = null;
if (!props.readOnly) {
deleteButton = <Delete
style={styles.deleteButton}
onTouchTap={props.onRemove}
/>
}
return <div className="Chip" style={styles.tag}>
{chipIcon}
{' ' + props.label + ' '}
{deleteButton}
</div>
};
如果第一个确实是 React 元素,为什么它不起作用?
【问题讨论】:
-
您是否尝试过在返回值周围加上括号?可能是哪里出了问题,因为 JS 认为 return 语句在第一行之后就完成了?
标签: javascript reactjs material-ui