Q:

Flex works only on View component?

There is no information about it on official docs. They just show examples with View component but without saying that applying flex to the Text component is wrong. 
This article says:  

Flexbox layout’s only available for use on View components.

But when I test this:
import * as React from 'react';
import { Text, View } from 'react-native';

export default class App extends React.Component {
  render() {
    return (
      <View style={{flex:1, padding:10,}}>
        <Text style={{flex:1,backgroundColor:'red'}}>
          Some Text
        </Text>
      </View>
    );
  }
}

snack
So why flex:1 works on Text component if this is not supporting?

A:

I'm guessing that it is supported. In my personal experience I have seen it worked with Text, TextInput, Image, TouchableOpacity and so on. If the element is an element that can be displayed within or among other items on the screen layout, it should be affected by flex.
However whether to use it like that or not would be a better question. I think that this is a good example of separation of concerns. Text is here to display a text and to style it. If we want to adjust the layout, we should use View: wrap your Text with View and apply all necessary layout and positioning styles. This will eliminate all overhead confusion about what each element's core responsibilities are, and when it comes to ease of coding, will also allow us to always know that for layout - we refer to View, and for displaying text - we refer to Text. This uniformity will make your debugging, team work, and legacy work, much easier to perceive.

