Если имеется несколько элементов, children
, передаваемый реквизитами, на самом деле является массивом ,
children:
[0]: <Image {passing image} />
[1]: <Text>Sample</Text>
Если вы расположите дочерние элементы, как показано ниже, и структура будет фиксированной.
<View>
<Image {passing image} />
<Text>Sample</Text>
</View>
Вы можете просмотреть массив потомков детей с помощью (с необязательной цепочкой возможно)
this.props.children.props.children[1].type === 'Text'
, что означает, что в вашей ситуации вы можете проверить длина его или соответствие типа второго элемента Text
, чтобы узнать, был ли передан компонент Text
или нет.
Попробуйте онлайн:
Обновление
Если мы хотим получить полный обзор дочерних элементов, консоль без атрибута type
будет хорошей.
this.props.children.props.children[1]
type: "div"
key: null
ref: null
props: Object
_owner: FiberNode
_store: Object