ReactNative - FlatList 直到滚动才更新
ReactNative - FlatList not updated until scroll
我遇到 FlatList
组件的问题,该组件在滚动之前不会更新。
我尝试将日志添加到 renderItem
和 keyExtractor
这两种方法都调用了正确的数据,但列表没有更新。
这是一个渲染方法:
render() {
const messages = this.props.messages
const message = this.props.message
return (
<View style={[styles.container]}>
<FlatList
ref={"flatList"}
contentContainerStyle={styles.list}
data={messages}
renderItem={(listItem) => {
return <MessageBuble message={listItem.item}/>
}}
keyExtractor={(item: Message) => {
return item.id
}}
/>
<View style={[styles.textInputContainer]}>
<TextInput
style={styles.textInput}
value={message}
multiline={true}
onChangeText={this.props.messageChanged}
/>
<Button title={"Odeslat"} onPress={() => {
if (this.props.sendMessage) {
this.props.sendMessage(this.props.message)
}
}}/>
</View>
</View>
)
}
在 FlatList 中添加 extraData 并重试
<FlatList
extraData={this.props}
....
我遇到 FlatList
组件的问题,该组件在滚动之前不会更新。
我尝试将日志添加到 renderItem
和 keyExtractor
这两种方法都调用了正确的数据,但列表没有更新。
这是一个渲染方法:
render() {
const messages = this.props.messages
const message = this.props.message
return (
<View style={[styles.container]}>
<FlatList
ref={"flatList"}
contentContainerStyle={styles.list}
data={messages}
renderItem={(listItem) => {
return <MessageBuble message={listItem.item}/>
}}
keyExtractor={(item: Message) => {
return item.id
}}
/>
<View style={[styles.textInputContainer]}>
<TextInput
style={styles.textInput}
value={message}
multiline={true}
onChangeText={this.props.messageChanged}
/>
<Button title={"Odeslat"} onPress={() => {
if (this.props.sendMessage) {
this.props.sendMessage(this.props.message)
}
}}/>
</View>
</View>
)
}
在 FlatList 中添加 extraData 并重试
<FlatList
extraData={this.props}
....