#javascript #reactjs
#javascript #reactjs
Вопрос:
У меня есть динамическая форма, над которой я работаю, и я надеялся создать <Form>
компонент-оболочку. Если бы у всех моих полей формы (реагирующих компонентов) была вызвана функция, которая жила на них getValue()
, которая возвращала значения для этого компонента. Затем я мог бы получить все свои динамические значения за 1 итерацию.
for(let i = 0; i < this.props.children.length; i ){
result.push(this.props.children[i].getValue());
}
Проблема, с которой я столкнулся, заключается в следующем. По какой-то причине нет ссылки на функции компонентов в дочернем объекте. So getValue
не определено.
Почему это так? Есть ли способ иметь возможность динамически перебирать компоненты и ссылаться на их свойства / функции в том же поместье, ref's
что и?
Вынужден ли я выполнять итерации с использованием ссылок?
доказательство концепции jsx:
return (
<Form ref="form">
<AdminSeo
home={true}
disableRedirect={true}
disableCanonical={true}
/>
</Form>
);
Это приведет к тому, что this.props.children будет равно [Object]
;
У AdminSEO есть свойство, называемое GetValue();
getValue = () => {
return {...this.state};
}
Комментарии:
1. Если вы видите this.props.children вне цикла for, то это проблема привязки. В этом случае попробуйте
var self = this;for(let i = 0; i < this.props.children.length; i ){ result.push(self.props.children[i].getValue()); }
2. Я думаю, что props.children — это ссылка на компонент react. Он не ссылается на сам класс, поэтому никакие методы не доступны.