import React, { Component } from 'react'; import { Button, ListView, Platform, StyleSheet, Text, TextInput, View, } from 'react-native'; import KeyboardSpacer from '../../components/KeyboardSpacer'; export default class ChatScreen extends Component { static navigationOptions = { title: (navigation) => `Chat with ${navigation.state.params.name}`, } constructor(props) { super(props); const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); const messages = [ { name: props.navigation.state.params.name, name: 'Claire', text: 'I ❤️ React Native!', }, ]; this.state = { messages: messages, dataSource: ds.cloneWithRows(messages), myMessage: '', } } addMessage = () => { this.setState((prevState) => { if (!prevState.myMessage) return prevState; const messages = [ ...prevState.messages, { name: 'Me', text: prevState.myMessage, } ]; return { messages: messages, dataSource: prevState.dataSource.cloneWithRows(messages), myMessage: '', } }); this.refs.textInput.clear(); } myMessageChange = (event) => { this.setState({myMessage: event.nativeEvent.text}); } renderRow = (message) => ( {message.name} {message.text} ) render() { return ( {this.state.myMessage !== '' && (