2016-05-18 2 views
2

Я объявляю компонент внутри родительского компонента. Я хочу установить определенные реквизиты в одном файле, а затем в родительском компоненте, я хочу иметь возможность устанавливать другие реквизиты для дочерних компонентов все сразу (поскольку они являются общими свойствами .. по большей части).React Component ждет необходимых реквизитов для рендеринга

Моя проблема заключается в том, что дочерний компонент пытается визуализировать и терпеть неудачу, поскольку вначале не создаются требуемые типы опоры.

Есть ли способ рассказать дочернему компоненту, чтобы он подождал необходимых реквизитов?

В функции рендеринга ParentComponent я вызываю другую функцию для запуска React.Children.map() и добавляет реквизиты в ChildComponent.

The (шероховатый) раздел, в котором ребенок компонент визуализируется:

<ParentComponent> 
 
    <ChildComponent 
 
     attribute="test_attribute" 
 
     label="Child Component" 
 
     type="number" 
 
     width={3} 
 
    /> 
 
</ParentComponent>

+1

Возможный дубликат [Как я могу заблокировать компонент React, который будет отображаться до тех пор, пока я не получил всю информацию?] (Http://stackoverflow.com/questions/35022922/how-can-i-block-a-react-component -в-не будет вынесено-до-I-извлечённому-все-информации) – azium

ответ

4

Вы можете использовать conditional render statement только оказывать ребенок, когда реквизит населенные:

let {foo, bar} = this.props; 

<ParentComponent> 
    { foo && bar ? <ChildComponent foo={foo} bar={bar} /> : null } 
</ParentComponent> 

Или вместо null вы можете сделать <LoadingSpinner /> или что-то в этом роде.

Смежные вопросы