Boa noite. Quando eu curto a foto, funciona o código. Quando vou descurtir, esse erro é apresentado no emulador. Alguém tem alguma ideia o que pode ser? Conferi com o código da aula e não vi diferença.
const largura = Dimensions.get('screen').width;
export default class Post extends Component {
constructor(props) {
super(props);
this.state = { foto: this.props.foto }
this.state.foto.likers = [,]
}
carregaIcone(likeada) {
return likeada ? require('../../resources/img/s2-checked.png') : require('../../resources/img/s2.png')
}
like() {
const {foto} = this.state;
let novaLista = [];
if (!foto.likeada) {
novaLista = [
...foto.likers,
{login: 'meuUsuario'}
];
} else {
novaLista = foto.likers.filter(liker => {
return liker.login !== 'meuUsuario'
});
}
const fotoAtualizada = {
...foto,
likeada: !foto.likeada,
likers: novaLista
}
this.setState({ foto: fotoAtualizada });
}
exibeLikes(likers) {
if (likers.length <= 0)
return;
return (
<Text>{likers.length} {likers.length > 1 ? 'curtidas' : 'curtida'}</Text>
);
}
exibeLegendas(foto) {
if (foto.comentario === '')
return;
return (
<View style={styles.comentario}>
<Text style={styles.tituloComentario}>{foto.loginUsuario}</Text>
<Text>{foto.comentario}</Text>
</View>
);
}
render() {
const { foto } = this.state;
return (
<View>
<View style={styles.cabecalho}>
<Image source={{ uri: foto.urlPerfil }} style={styles.fotoDePerfil} />
<Text>{foto.loginUsuario}</Text>
</View>
<Image source={{ uri: foto.urlFoto }} style={styles.foto} />
<TouchableOpacity onPress={this.like.bind(this)}>
<View style={styles.rodape}>
<Image style={styles.botaoDeLike} source={this.carregaIcone(foto.likeada)} />
</View>
</TouchableOpacity>
<View>
{this.exibeLikes(foto.likers)}
{this.exibeLegendas(foto)}
</View>
</View>
);
}
}