Я перебрал все вопросы, подобные моему, но не смог найти ничего полезного для этого дела.
Пожалуйста, помогите.
Это моя функция:
renderFields() {
if (this.props.field) { // some prop
return (
<SelectBox
className="selectbox"
value={this.state.selectId}
/>
);
}
}
Где используется:
renderAllFields() {
<div>{this.renderFields()}</div>
}
Это генерирует следующее сообщение:
Uncaught RangeError: Maximum call stack size exceeded
Возможно, это как-то связано с жизненными циклами в React, но я не уверен.
Например, когда я проверяю:
componentDidUpdate = (prevProps) => {
console.log('prevProps', prevProps);
console.log('this.props', this.props);
};
Они выглядят одинаково.
Спасибо.
РЕДАКТИРОВАТЬ:
render() {
return (
<div>
<Formsy.Form
ref="form"
onChange={this.checkForChange}>
<Grid fluid className="container__seven--holder">
{this.renderAllFields()}
</Grid>
</Formsy.Form>
</div>
)
}
checkForChange()
получает значения из формы и устанавливает обновленное состояние, используя:
this.setState(updatedState);
Я считаю, что проблема заключается в обновлении при каждом изменении .. даже когда я перемещаю мышь, оно продолжает обновляться.