Javascript 您应该将数据附加到flatlist还是替换flatlist中的数据(flatlist中重型组件的最佳实践)?

Javascript 您应该将数据附加到flatlist还是替换flatlist中的数据(flatlist中重型组件的最佳实践)?,javascript,reactjs,react-native,react-hooks,react-native-flatlist,Javascript,Reactjs,React Native,React Hooks,React Native Flatlist,我使用react native socials在一个平面列表中显示来自后端API的tweet数据。我已经实现了pullToRefresh,并且在我们到达末尾时刷新提要 因此,提要中的每个元素都是tweet,并显示在库中的twitter组件中 我正在使用useState设置提要并重新加载平面列表 目前,我正在用新数据替换提要 问题 在通过pullToRefresh从后端更新了几次提要之后,我从库中获得了Twitter元素中的未定义的 以下是提要页面的代码: ~~~剪贴导入~~~ 功能FeedSc

我使用react native socials在一个平面列表中显示来自后端API的tweet数据。我已经实现了pullToRefresh,并且在我们到达末尾时刷新提要

因此,提要中的每个元素都是tweet,并显示在库中的twitter组件中

我正在使用
useState
设置提要并重新加载平面列表

目前,我正在用新数据替换提要

问题 在通过
pullToRefresh
从后端更新了几次提要之后,我从库中获得了
Twitter
元素中的
未定义的

以下是
提要页面的代码:

~~~剪贴导入~~~
功能FeedScreen({导航、路线、类型提供}){
常数typeoffed=1;
const{user,setUser}=useContext(AuthContext);
常量[tcursor,settCursor]=useState({
以前的:“,
下一步:“,
});
const[feed,setFeed]=useState([]);
const[refreshing,setRefreshing]=useState(false);
const refContainer=useRef(null);
const showtoos=(消息)=>{
ToastAndroid.show(消息,ToastAndroid.SHORT);
};
useffect(()=>{
加载进给(类型进给);
}, []);
const loadFeed=async(typeOfFeed,old=false)=>{
设置刷新(真);
让userData=等待getAndRefreshToken();
如果(用户数据){
setUser(userData);
}
setAuthToken(userData[“idToken”][“jwtToken”]);
让url=tcursor.next;
常量重复数据=(…arrs)=>[…新集合([].concat(…arrs))];
const response=wait postsApi.getPosts(typeoffed,url);
if(response.ok){
if(response.data[0].id==feed[0]?.id){
ToastAndroid.show(“没有新帖子”,ToastAndroid.SHORT);
}否则如果(response.data.length>0){
//此代码用于添加固定长度的数组元素
//
//设oldLength=feed.length;
//const feedNew=重复EIT(feed,response.data);
//if(feedNew.length{
if(refContainer.current){
refContainer.current.scrollToIndex({animated:true,index:0});
}
loadFeed(typeoffed,true);
}}
onEndReachedThreshold={0.01}
/>
) : (
{令人耳目一新(
) : (
{
加载进给(类型进给);
}}
style={styles.appButtonContainer}
>
重新加载进给
)}
)}
);
}
PostFlatlist.js的代码
~~~剪贴导入~~~
常量renderItem=({item})=>(
{item.type==postType.TWEET&&(
)}
);
函数后平面列表({
饲料,
风格
令人耳目一新的
在刷新时,
车把架,
ListHeaderComponent,
他说,
一个人达到了三分之一,
参考容器,
}) {
返回(
{
return post.id.toString();
}}
ListHeaderComponent={ListHeaderComponent}
renderItem={renderItem}
ItemSeparatorComponent={ListItemSeparator}
正在刷新={正在刷新}
onRefresh={onRefresh}
onEndReached={onEndReached}
onEndReachedThreshold={onEndReachedThreshold}
/>
);
}
导出默认PostFlatlist;

您能否澄清或扩展“在加载了一些提要之后,我从库中获得了一个未定义的Twitter元素”的实际含义?什么是未定义的?什么是推特元素?从哪个图书馆?“有错误吗?”德雷雷泽抱歉,我胡乱写了出来。更新了更多的上下文。谢谢你的调查。我提到了这个库,twitter元素来自这个库本身所以这看起来像是后端的数据问题。你是说在刷新几次之后,以前定义的数据现在是未定义的吗?是的,但只有一个。然而,我与邮递员分开检查,数据似乎在那里。因为它是分页的,所以一次10个元素,之后还有页面。我能看到那里所有的十种元素。可能是
useState
异步问题,不确定。我尝试间歇性地记录日志,并添加检查以避免
未定义的值,但没有成功。