приветду код:
table() {
if(this._table === null){
this._table = new PropertiesTable({data: this.props.data, availableTypes: this.props.availableTypes})
}
return this._table;
}
render() {
return (
<div className="contentbar">
<div className="row">
<div className="col-lg-12">
<div className="card m-b-30">
<div className="card-body">
<div className="btn-toolbar">
<div className="btn-group focus-btn-group">
<button
type="button"
className="btn btn-default"
onClick={this.addRawCallback}
><span
className="glyphicon glyphicon-screenshot">
</span>
Добавить
</button>
</div>
</div>
<div className="table-responsive">
{this.table().render()}
</div>
</div>
</div>
</div>
</div>
</div>
);
}
в методе table создается дочерний компонент table
когда вызываю table.render() все показывается. когда пытаюсь вызвать какое то действие в дочернем компоненте то получаю: Warning: Can't call setState on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the PropertiesTable component.
мне бы хотелось делать так: в методе this.addRawCallback добавить просто this.table().addNewRow()
а не через обратные вызовы и передачи функции в дочерний/родительский компонент и не делать общих функций для контекста.