Я в родительском компоненте и пытаюсь динамически добавить новый компонент, нажав кнопку. Я вставлю только необходимый код, потому что мои файлы большие.
Итак, ниже, скажем, родительский компонент:
export default class Parent extends Component {
constructor(props) {
super(props);
this.state = {
conditions: [{attribute: '', operator: '', value: ''}]
}
}
addCondition = (e) => {
this.setState((prevState) => ({
conditions: [...prevState.conditions, { attribute: '', operator: '',value: '' }],
}));
}
render() {
let {conditions} = this.state
return(
<Row>
<TextButton label='Add Child' onClick={(e) => {this.addCondition}} flat={true} />
</Row>
<Row>
<ChildElement conditions={conditions} />
</Row>
)
}
}
И это ChildElement, который я хочу визуализировать динамически:
export class ChildElement extends Component {
constructor(props) {
super(props);
this.state = {
attribute: '',
operator: '',
action: '',
};
}
render() {
return (
this.props.conditions.map((val, idx)=> {
let attributeId = `attributeId-${idx}`,
operatorId = `operatorId-${idx}`,
valueId = `valueId-${idx}`
return (
<Row>
<Col >
<Dropdown id={attributeId} />
</Col>
<Col >
<Dropdown id={operatorId} />
</Col>
<Col>
<Dropdown id={valueId} />
</Col>
</Row>
);
})
);
}
}
Когда родительский компонент загружен, я получаю ошибку:
Uncaught Error: ConditionElement.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.