I am running an react-native
chat app example from Even Bacon and run into frame out of range NaN
error:
Here is package.json:
"firebase": "^5.8.0",
"react": "16.6.3",
"react-native": "0.57.8",
"react-native-elements": "^0.19.1",
"react-native-gesture-handler": "^1.0.15",
"react-native-gifted-chat": "^0.7.0",
"react-navigation": "^3.0.9"
There are a few online posts about the error with different situations. The error is pointing to GiftedChat
in Chat.js. and I have no clue what causes the error.
import React, { Component} from 'react';
import {View, StyleSheet } from 'react-native';
import { GiftedChat } from 'react-native-gifted-chat';
import Fire from '../Fire';
class Chat extends React.Component {
static navigationOptions = ({ navigation}) => ({
title: (navigation.state.params || {}).name || 'Chat!',
});
state = {
messages: {},
};
componentDidMount() {
Fire.shared.on(message =>
this.setState(previousState => ({
messages: GiftedChat.append(previousState.messages, message),
}))
);
}
componentWillUnmount() {
Fire.shared.off();
}
get user() {
// return our name and our UID for GiftedChat to parse
return {
name: this.props.navigation.state.params.name,
_id: Fire.shared.uid,
};
}
render() {
return (
<GiftedChat <<<<==this is line:37
messages={this.state.messages}
onSend={Fire.shared.send}
user={this.user}
/>
);
}
}
const styles = StyleSheet.create({});
export default Chat;
It looks like the error is in your initial state for messages.
You have defined your state as
state = {
messages: {}
}
Messages should be defined as an array, so update your initial state to be
state = {
messages: []
}
From the documentation
- messages (Array) - Messages to display
https://github.com/FaridSafi/react-native-gifted-chat#props
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With