0
私はプロンプトを持っています。私は新しい配列でListViewを更新する必要がありますが、私の代わりに空のListViewが表示されます。エラーはない、白い画面...どのようにそれを修正する?ListViewの更新方法は?
sendMes()を削除すると、アプリが動作します。
constructor(props){
super(props);
var ds= new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2
});
var Dimensions = require('Dimensions') //определяем размеры экрана
var {widthScr, heightScr} = Dimensions.get('window')
var messagesArray = [
{message: "Hello", style: styles.nikkiMes},
{message: "Okkkk", style: styles.userMes}
];
this.state = {
messagesSource: ds.cloneWithRows(messagesArray.slice()),
inputMes: '',
messagesArray: messagesArray
};}
renderMessages(rowMessages){
return(
<Text style={rowMessages.style}>{rowMessages.message}</Text>
);}
sendMes(){
var ds= new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2
});
this.setState({
messagesArray: this.state.messagesArray.concat({message: this.inputMes, style: styles.userMes}),
messagesSource: ds.cloneWithRows(this.state.messagesArray.concat({message: this.inputMes, style: styles.userMes}).slice())
});}
render() {
return (
<View styyle={{flex: 1, alignItems: 'center', flexDirection: 'row'}}>
<ListView
dataSource={this.state.messagesSource}
renderRow={this.renderMessages.bind(this)}
/>
<TextInput
style={{height: 50}}
placeholder="Type here..."
onChangeText={(inputMes) => this.setState({inputMes})}
/>
<TouchableHighlight onPress={this.sendMes()}> <Text>Button</Text> </TouchableHighlight>
</View>
);}
どのように新しいアイテムをListViewに追加できますか?