У меня есть следующие компоненты:Возникли проблемы рендеринг Реагировать элемент передается в качестве опоры
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
определенно Материал UI SvgIcon
, но я получаю предупреждение, когда я пытаюсь это.
arning: React.createElement: тип не должен иметь значение null, undefined, boolean или number. Он должен быть строкой (для элементов 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>
};
Почему не первая одна работа, если это действительно Реагировать элемент?
Вы пытались помещать круглые скобки вокруг возвращаемого значения? Может быть, что-то идет не так, как JS считает, что оператор return закончен после первой строки? – Nick