chi*_*ro2 2 javascript firebase react-native expo
我已经填充了FlatList从 Googlefirebase后端获取的数据。实现是相当标准的,这是一个精简版:
export default class Day extends Component {
state = { data : [], today: false }
componentWillMount = async () => {
const { today } = this.state;
const { calendarDb } = this.props
await calendarDb.onNewAgenda({
day : today
, then: this.parseOnListed
})
}
parseOnListed = blob => {
const { data } = this.state;
data.push(blob)
this.setState({ data: data })
}
renderItem = ({ item }) =>
<Hour data = {item}/>
render = () =>
<FlatList
data = {this.state.data}
renderItem = {this.renderItem}
keyExtractor = {item => item.ID}
/>
Run Code Online (Sandbox Code Playgroud)
}
问题是每次blob推入一个新组件时data,<Image/>组件都会<Hour data={item}/>闪烁。这使得该列表在用户体验方面不可行。是什么赋予了?<Hour/>也是标准的,或多或少是这样的:
const Hour = ({ data }) =>
<View>
<Image source={{uri:data.uri}}/>
<Text> {data.name} </Text>
</View>
Run Code Online (Sandbox Code Playgroud)
的内容<Text>不闪烁,只有图像来自<Image .../>
小智 6
检查是否keyExtractor正在获取唯一 ID。平面列表在状态更新时重新渲染,并再次下载图像。因为,每一行都没有像@Guruparan Giritharan 在评论中所说的那样唯一标识。
| 归档时间: |
|
| 查看次数: |
4269 次 |
| 最近记录: |