从 firebase 渲染 FlatList 中的数据

2024-04-17

我正在使用 React Native 0.49。我从 firebase 中获取了数据,用户列表users/,这个列表中的每一项都是这样设置的firebase.database().ref('users/' + userId).set(userInfo)用户 ID 是uid当前用户的。

现在我正在取回(在操作中 - redux):

export function getPeople(){
    return (dispatch) => {
        dispatch(getPeopleRequest());
        getData().then(result => {
            dispatch(getPeopleSuccess(result.val()))
        })
        .catch(error => {
            dispatch(getPeopleFailure(error))
        }); 
    }
}

const getData = () => {
    const userRef = firebase.database().ref('users/').limitToFirst(20);
    return userRef.once('value');     
}

在组件中,我试图渲染 FlatList 中的数据,但它没有渲染任何内容,我不知道我做错了什么:

componentDidMount(){
   this.props.getPeople();
}
_renderItem = ({ item }) => (

    <View style={{flex: 1}}>
        <Text>{item}</Text>
    </View>
);

render(){
    const { inProgress, people, error } = this.props.peopleData;
    return (
        <FlatList
            data={people}
            renderItem={this._renderItem} 
        />
    );
}

当控制台记录people这是结果:{cpycwkz7exVBzmhaLEtHjMW66wn1: {…}, UbIITfUANmb63cYE2x7dZRZ0pfK2: {…}}


FlatList组件期望其dataprop 是一个数组。您将其作为对象传递。您可以将其更改为对象数组。那么也在你的_renderItem方法item将是一个对象,并且不能立即渲染<Text>,您必须从项目对象中提取文本值,然后将其呈现为:<Text>SOME_TEXT_NOT_AN_OBJECT</Text>

您可以将 people 对象转换为数组并将其传递给<FlatList像这样:

render(){
    const { inProgress, people, error } = this.props.peopleData;
    let ArrayOfPeopleObject = Object.values(people)
    return (
        <FlatList
            data={ArrayOfPeopleObject}
            renderItem={this._renderItem} 
        />
    );
}

现在每个item in the _renderItem方法将是一个对象,您可以从任何键中提取值并将其呈现在<Text>.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 firebase 渲染 FlatList 中的数据 的相关文章

随机推荐

  • 将 Rails 与 Paperclip 和 SWFUpload 结合使用

    我对用户模型进行了基本的 Rails 应用程序测试 该模型具有用回形针处理的照片字段 我创建了能够创建 编辑用户的视图 并且照片上传运行良好 h1 Editing user h1 p br p p br p
  • if..else 或 Select..case 哪个更快?

    我有三个条件可以比较 以下两者哪一个更快 请指出我 谢谢大家 If var 1 then Command for updating database ElseIf var 2 then Command for updating databa
  • 如何查找列表中句子列表中每个单词的引理和频率计数?

    我想使用 WordNet Lemmatizer 找出引理 并且还需要计算每个词频 我收到以下错误 轨迹如下 类型错误 不可散列的类型 列表 注 语料 库可在nltk包装本身 到目前为止我已经尝试过如下 import nltk re impo
  • 如何在 Komodo IDE 中设置断点?

    我已经安装了科莫多集成开发环境 https www activestate com products komodo ide 我想知道在哪里 如何设置断点 以便顶行的第 9 个符号 gt 明白了吗 EDIT 单击代码左侧装订线中的行号
  • Scala 中的函数式反应式编程 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话
  • Ant:将compilerarg传递给javac

    我有可以编译的 ant 脚本
  • 如何让 gdb 保存命令历史记录?

    我该如何设置gdb这样它就可以保存命令历史记录 当开始新的gdb会话 我想使用向上箭头键来访问之前会话的命令 简短回答 mkdir p config gdb echo set history save on gt gt config gdb
  • 如何使用 UIPath 中的“关闭选项卡”活动关闭子选项卡

    UiPath 是closing the 主窗口而不是子窗口 我在中定义了一个浏览器变量attach browser活动并将该浏览器变量传递给Close tab活动 Chrome 主窗口仍处于关闭状态 另附上项目 xaml 文件https d
  • iOS11 AppIcon无法更改

    Xcode 9 测试版 6 iOS 11 测试版 10 我想要使 用自定义应用程序图标打包应用程序 因此我尝试替换 DerivedData Users XXX Library Developer Xcode DerivedData proj
  • Pyparsing 分隔列表仅返回第一个元素

    这是我的代码 l 1 3E 2 2 5E 1 parser Word alphanums grammar delimitedList parser delim t print grammar parseString l 它返回 1 3E 2
  • iOS:从 url 加载图像

    我需要从 url 加载图像并将其设置在 UIImageView 中 问题是我不知道图像的确切大小 那么如何才能正确显示图像呢 只需使用 UIImage 的 size 属性即可 例如 NSURL url NSURL URLWithString
  • 将带有ajax请求的数组发送到php

    我像这样创建了数组 9 ques 5 19 ques 4 现在我想将它从 JS 发送到 PHP 但我没有得到正确的结果 我的JS代码是 button click function e e preventDefault ajax type p
  • nameof 和 typeof 的区别

    如果我错了请纠正我 但是做类似的事情 var typeOfName typeof Foo Name and var nameOfName nameof Foo 应该给你完全相同的输出 根据该消息来源 可以理解的原因之一是 https msd
  • 使用 RPATH 但不使用 RUNPATH?

    这一页 https web archive org web 20120418232524 http labs qt nokia com 2011 10 28 rpath and runpath 说关于图书馆检索的顺序ld so Unless
  • 覆盖特定模型的 Django 管理 URL?

    首先是一些背景 我有一个Event模型具有各种event types 我想将这些事件类型之一 电影 分解到它自己的管理中 我已经具备了基本功能 继承自的代理模型Event named Film 该代理模型的自定义管理器 仅将其过滤为 电影
  • 从 GoDaddy 托管的 ASP.NET MVC 应用程序发送邮件消息时出现问题

    我在 GoDaddy 托管的 MVC Web 应用程序上有一个表单 用户可以填写该表单并发送给我们的办公室 我目前正在使用 Gmail 帐户和 GoDaddy 电子邮件帐户 链接到我的托管空间 对其进行测试 使用 Gmail 代码后 电子邮
  • 如何使用自动生成的列隐藏 ASP.NET GridView 中的列?

    即使 SqlDataSource1 DataBind GridView1 Columns Count 也始终为零 但网格没问题 I can do for int i 0 i lt GridView1 HeaderRow Cells Coun
  • Android CursorLoader 带有选择和selectionArgs[]

    我在用Loader for RecyclerView Adapter列出项目 我想列出数据库表中的特定项目 所以我做了 public Loader
  • 从 csv 文件创建代理时使用 to-reports

    我的问题有点长 如果您能阅读全部内容 我真的很感激 并且我将非常感谢您的任何建议 我有与 2 位海龟消费者相关的数据 他们对笔记本电脑的功能进行了评级 笔记本电脑有两种特征 屏幕尺寸和电池寿命 每个都有一些级别 例如电池续航时间有5小时 1
  • 从 firebase 渲染 FlatList 中的数据

    我正在使用 React Native 0 49 我从 firebase 中获取了数据 用户列表users 这个列表中的每一项都是这样设置的firebase database ref users userId set userInfo 用户