У меня проблема с жизненным циклом React для моих дочерних компонентов, это очень странная ошибка, и я не уверен, что могло ее вызвать. (Примечание: я вынужден использовать React 15.x из-за унаследованных проблем с общим процессом приложения и сборки, поэтому нет JXS или перехватчиков):
Это работает как задумано (метод getInitialState не вызывается в потомок, когда состояние «dnd» изменяется в родительском элементе и затем передается потомку как подпорка):
renderChildren: function(that) {
return that.props.children.map((child, idx) => {
return React.cloneElement(child, { 'dnd': that.state.dnd }, null)
});
},
regionDndTemplate: function(that, display = 'block') {
const children = this.renderChildren(that);
return React.createElement(
"div",
{
"id": that.props.node.type,
"name": that.props.node.component,
"className": that.props.node.className[that.state.dnd]
},
children
);
},
Однако, если я добавлю еще несколько вызовов createElement в тот же метод, это вызовет полный жизненный цикл дочерних элементов и запускает их getInitialState и другие вызовы, которые я не хочу выполнять:
regionDndTemplate: function(that, display = 'block') {
const children = this.renderChildren(that);
return React.createElement(
"div",
{
"id": that.props.node.type,
"name": that.props.node.component,
"className": that.props.node.className[that.state.dnd]
},
React.createElement(
"div",
{
"key": 100,
"style": { "height": "45px", "lineHeight": "42px" }
},
"Hello"
),
children
);
},
Я попытался изменить порядок дочерних и других элементов, чтобы дочерние элементы является первым, и это не имеет никакого эффекта.
Я в замешательстве, почему добавление большего количества элементов на уровне родительского компонента окажет какое-либо влияние на жизненный цикл детей?