Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何向平面列表添加新数据。(本地反应)_Reactjs_React Native - Fatal编程技术网

Reactjs 如何向平面列表添加新数据。(本地反应)

Reactjs 如何向平面列表添加新数据。(本地反应),reactjs,react-native,Reactjs,React Native,我使用此方法向平面列表添加新数据 const [message, setMessage] = useState([/* Data */]) <FlatList data = {message} renderItem = {renderItem} keyExtractor = {keyExtractor} /> setMessage((pre) => [/* new data */, ...pre]) const[message,setMessage]=use

我使用此方法向平面列表添加新数据

const [message, setMessage] = useState([/* Data */])

<FlatList
  data = {message}
  renderItem = {renderItem}
  keyExtractor = {keyExtractor}
/>

 setMessage((pre) => [/* new data */, ...pre])
const[message,setMessage]=useState([/*Data*/])
setMessage((pre)=>[/*新数据*/,…pre])
当我向其中添加新数据时,它会呈现列表中的所有元素。这会降低应用程序的性能。

这是一个实时应用程序。假设它有20个元素。所以每次添加或删除数据时,它都会呈现昂贵的元素。 我不是这方面的专家。
有一个调用。

平面列表是由道具驱动的。与所有React组件一样,当道具更改时,组件将重新呈现()自身。FlatList完全按照设计工作

可以优化平面列表渲染:

  • 初始numtorender
  • getItemLayout()
  • renderItem()
  • renderItem()中使用的组件的shouldComponentUpdate()
调整renderItem()中使用的组件,使其仅在绝对必要时通过生命周期方法(如shouldComponentUpdate())进行渲染


如果您想要更好的FlatList性能,您需要根据您的特定用例进行调整

**也许您可以创建如下函数:**

addData() {
        var b = { text: 'data' };
        usestates.push(b)
    }