当前位置: 首页 > 面试题库 >

如何重新呈现单位列表?

邓正真
2023-03-14
问题内容

与ListView不同,我们可以更新this.state.datasource。是否有任何方法或示例更新FlatList或重新呈现它?

我的目标是在用户按下按钮时更新文本值。

renderEntries({ item, index }) {
    return(
        <TouchableHighlight onPress={()=> this.setState({value: this.state.data[index].value+1})>
             <Text>{this.state.data[index].value}</Text>
        </TouchableHighlight>
    )
}

<FlatList 
    ref={(ref) => { this.list = ref; }} 
    keyExtractor={(item) => item.entry.entryId} 
    data={this.state.data} 
    renderItem={this.renderEntries.bind(this)} 
    horizontal={false} />

问题答案:

使用extraDataFlatList组件上的属性。

如文档所述:

通过传递extraData={this.state}FlatList我们,确保更改FlatList时将重新呈现自己state.selected。如果不设置此道具,FlatList就不会知道它需要重新渲染任何项目,因为它也是a
PureComponent,并且道具比较不会显示任何更改。



 类似资料:
  • 让我先说我显然对ajax / jsf非常陌生,所以请原谅我。首先,我一直在阅读一些丰富的面孔文档,但仍然不清楚“渲染”和“重新渲染”之间的区别。 我试图实现的是一个具有两个“区域”的页面,默认情况下这些“区域”是隐藏的/不呈现的。当用户选择

  • 在我点击提交按钮后,我如何使页面刷新或更新页面中的内容?我尝试将(我知道不是React方式,具有相同的结果)放入提交函数(、)中,但POST请求没有得到响应 OpenTickets.js CardConversation.jsx

  • 我从这里修改了以下组件定义,如下所示。但是,与示例不同的是,每次在组件上移动鼠标时,组件都会重新呈现。 重新渲染非常引人注目: 有人知道为什么会这样吗?

  • 在基于多个用户上下文呈现整个页面并发出多个请求之后,我希望用户能够切换上下文并再次重新呈现所有内容(重新发送所有请求,等等)。如果我只是将用户重定向到其他地方,事情就会正常工作: 如果使用,则上等待响应的某些请求将被取消,因此我不能使用它。此外,黑客也不起作用(什么也不会发生)。 有没有另一种方法可以重新呈现页面,而不用再次手动发出所有请求?

  • 我是新来的反应。作为一个学习练习,我正在构建一个国际象棋应用程序 我想根据父级中的状态更改子级的DOM。当前,在父级组件的状态变化时,子级组件没有变化。 PS:请忽略任何语法错误。这段代码是实际代码的精简。如果你想看完整的代码,请看这里