Estou utilizando a versão mais recende do React Native, a estrutura de arquivos é diferente, ou seja, não possui os arquivos "index.ios.js" e "index.android.js".
Em seu lugar temos apenas o arquivo "App.js", ou seja, o que era para ser a classe "InstaluraMobile" dentro de app.js, não foi criada no novo contexto e nesse ponto não estou conseguindo usar o comando que foi passado na aula:
import registraApp from './src/app';
registraApp();
Meu código está da seguinte forma:
Post.js
import React, {Component} from 'react';
import {StyleSheet, Text, View, Image, Dimensions} from 'react-native';
const width = Dimensions.get('window').width;
export default class Post extends Component {
render() {
return (
<View>
<View style={styles.cabecalho}>
<Image
source={require('../../resources/img/eu.jpg')}
style={styles.fotoDePerfil}
/>
<Text>{this.props.foto.usuario}</Text>
</View>
<Image
source={require('../../resources/img/eu.jpg')}
style={styles.foto}
/>
</View>
);
}
}
const styles = StyleSheet.create({
cabecalho: {
margin: 10,
flexDirection: 'row',
alignItems: 'center',
},
fotoDePerfil: {
marginRight: 10,
borderRadius: 20,
width: 40,
height: 40,
},
foto: {
width: width,
height: width,
},
});
App.js
import React from 'react';
import {FlatList, StyleSheet} from 'react-native';
import Post from './src/components/Post';
const App: () => React$Node = () => {
const fotos = [
{id: 1, usuario: 'eu 1'},
{id: 2, usuario: 'eu 2'},
{id: 3, usuario: 'eu 3'},
];
return (
<FlatList style={styles.container}
data={fotos}
keyExtractor={item => item.id}
renderItem={({item}) => <Post foto={item} />}
/>
);
};
const styles = StyleSheet.create({
container: {
marginTop: 20,
},
});
export default App;