Реагирует на this.props.дочерние элементы с динамической формой

#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. Он не ссылается на сам класс, поэтому никакие методы не доступны.